Home »
C++ programs
Sorting a structure in C++
C++ - Sorting a Structure: Here, we are going to learn how to sort a structure in C++ programming language?
Submitted by Himanshu Singh Bisht, on November 09, 2018
Generally sorting is done on an array of integer or string but there may be a situation where sorting is based on the number but actual data may be some other value.
Example:
Suppose we have to sort names of student according to roll number. So a structure can be created which can be used to store roll number and names.
Declaration of structure:
typedef struct value{
int roll;
string name;
}data;
C++ Code to sort structure:
#include <bits/stdc++.h>
using namespace std;
typedef struct value{
int roll;
string name;
}data;
bool compare(data a, data b)
{
//for descending order replace with a.roll >b.roll
if(a.roll < b.roll)
return 1;
else
return 0;
}
int main()
{
int n,i;
cout<<"Enter the number of students\n";
cin>>n;
data array[n];//array of structure is created
cout<<"Enter roll number and then name\n";
for(i=0;i<n;i++)
{
cin>>array[i].roll;
cin>>array[i].name;
}
sort(array,array+n,compare);
cout<<"Sorted list..."<<endl;
for(i=0;i<n;i++)
{
cout<<array[i].roll<<" ";
cout<<array[i].name<<endl;
}
return 0;
}
Output
Enter the number of students
3
Enter roll number and then name
101 Amit
102 Abhishek
103 Shubham
Sorted list...
101 Amit
102 Abhishek
103 Shubham