How to flatten a 2D vector into a sorted one-dimensional vector in C++

1 Answer

0 votes
#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<std::vector<int>> array2d = {
        {4, 5, 3},
        {30, 20},
        {10},
        {1, 2, 6, 7, 8},
    };

    std::vector<int> arr;

    for (const auto& row : array2d) {
        arr.insert(arr.end(), row.begin(), row.end());
    }

    std::sort(arr.begin(), arr.end());

    for (size_t i = 0; i < arr.size(); ++i) {
        if (i > 0) std::cout << ", ";
        std::cout << arr[i];
    }
}



/*
run:

1, 2, 3, 4, 5, 6, 7, 8, 10, 20, 30

*/

 



answered Aug 15, 2024 by avibootz
...