{}
run-icon
main.cpp
#include <algorithm> #include <vector> #include <iostream> using namespace std; template <typename T> vector<vector<T>> permute(vector<T>& elems) { vector<vector<T>> out; sort(elems.begin(), elems.end()); do { out.push_back(elems); } while (next_permutation(elems.begin(), elems.end())); return out; } template <typename T> void print(vector<vector<T>> nested) { cout << "{" << endl; for (vector<int> elem : nested) { cout << "\t{"; for (int i = 0; i < elem.size(); i++) { cout << elem.at(i); if (i < elem.size() - 1) { cout << ","; } } cout << "}," << endl; } cout << "}" << endl; } int main() { // Test Case 1 vector<int> v1 = {1, 2}; vector<vector<int>> out1 = permute(v1); print(out1); // Test Case 2 vector<int> v2 = {2, 5, 8}; vector<vector<int>> out2 = permute(v2); print(out2); return 0; }
Output