fork(1) download
  1. // next_permutation example
  2. #include <iostream> // std::cout
  3. #include <algorithm> // std::next_permutation, std::sort
  4. #include <chrono>
  5.  
  6. int main () {
  7. std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
  8.  
  9. int myints[] = {1,2,3,4,5,6,7,8,9,10,11,12};
  10. int i = 0;
  11.  
  12. std::sort (myints,myints+12);
  13.  
  14. do {
  15. i++;
  16. // std::cout << myints[0] << ' ' << myints[1] << ' ' << myints[2] << '\n';
  17. } while ( std::next_permutation(myints,myints+12) );
  18.  
  19.  
  20. std::chrono::steady_clock::time_point end= std::chrono::steady_clock::now();
  21.  
  22.  
  23. std::cout << "permutations: " << i << '\n';
  24. std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::microseconds>(end - begin).count() << " microseconds" <<std::endl;
  25. std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::nanoseconds> (end - begin).count() << " nanoseconds" <<std::endl;
  26.  
  27. return 0;
  28. }
Success #stdin #stdout 1.02s 15240KB
stdin
Standard input is empty
stdout
permutations: 479001600
Time difference = 1030291 microseconds
Time difference = 1030291745 nanoseconds