How to flatten a 2D array into a sorted one-dimensional array with unique values in C++

1 Answer

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

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

    std::set<int> uniqueValues;

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

    for (const auto& n : uniqueValues) {
        std::cout << n << " ";
    }
}




/*
run:

1 2 3 4 6 7 8 9 10 30 

*/

 



answered Aug 15, 2024 by avibootz
...