Sorting Vector of Arrays in C++

Given a vector of arrays, the task is to sort them.

Examples:

Input: [[1, 2, 3], [10, 20, 30], [30, 60, 90], [10, 20, 10]]
Output: [[1, 2, 3], [10, 20, 10], [10, 20, 30], [30, 60, 90]]

Input: [[7, 2, 9], [5, 20, 11], [6, 16, 19]]
Output: [[5, 20, 11], [6, 16, 19], [7, 2, 9]]

Approach:



To sort the Vector of Arrays using the built-in sort() in C++ STL it needs an array template which defined in a boost libraries, to store vector of arrays.

std:: vector<std:: array >

where, std::array is a container that encapsulates fixed size arrays.

In this problem, sort() function takes two arguments first(begin position of the vector) and second(end position of the vector) to sorts a vector of arrays (items with random access). Below is a simple program to show the working of sort().

CPP

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to sort the vector
// of array by sort() function
// using STL in c++
  
#include <algorithm>
#include <array>
#include <iostream>
#include <vector>
using namespace std;
  
#define N 3
  
// Function to print vector of arrays
void print(vector<array<int, N> > vect)
{
  
    // Displaying the vector of arrays
    // ranged for loop is supported
    for (array<int, N> i : vect) {
        for (auto x : i)
            cout << x << " ";
        cout << endl;
    }
}
  
// Driver code
int main()
{
    // std::array is a container that
    // encapsulates fixed size arrays.
    vector<array<int, N> > vect;
    vect.push_back({ 1, 2, 3 });
    vect.push_back({ 10, 20, 30 });
    vect.push_back({ 30, 60, 90 });
    vect.push_back({ 10, 20, 10 });
  
    cout << "Vector of arrays"
         << " before sorting: \n";
    print(vect);
  
    // Sorting the vector using built-in sort()
    // defined in algorithm header in C++ STL
    sort(vect.begin(), vect.end());
  
    cout << "Vector of arrays"
         << " after sorting: \n";
    print(vect);
  
    // End of program
    return 0;
}

chevron_right


Output:

Vector of arrays before sorting: 
1 2 3 
10 20 30 
30 60 90 
10 20 10 

Vector of arrays after sorting: 
1 2 3 
10 20 10 
10 20 30 
30 60 90

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.