Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdlib.h>
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- template <class smth>
- bool my_next_permutation(smth first, smth last)
- {
- smth end = last;
- end--;
- if (first == end) return 0;
- smth runner = end;
- --runner;
- smth right, left;
- left = end;
- while (*runner >= * left)
- {
- if (runner == first)
- {
- reverse(first, last);
- return 0;
- }
- runner--;
- left--;
- }
- right = end;
- while ((*right <= *runner) && (right > left))
- {
- right--;
- }
- iter_swap(runner, right);
- sort(left, last);
- return 1;
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- ofstream out("track_list.txt");
- vector <string> vec {"23hi", "bab", "dhoaish", "rh3d"};
- sort(vec.begin(), vec.end());
- do
- {
- for (int i = 0; i < vec.size(); i++)
- {
- //cout << vec[i] << ' ';
- out << vec[i] << ' ';
- }
- cout << '\n';
- out << '\n';
- } while (my_next_permutation(vec.begin(), vec.end()));
- //cout << "-------------------------" << '\n';
- out << "-------------------------" << '\n';
- do
- {
- for (int i = 0; i < vec.size(); i++)
- {
- //cout << vec[i];
- out << vec[i] << ' ';
- }
- //cout << '\n';
- out << '\n';
- } while (next_permutation(vec.begin(), vec.end()));
- out.close();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement