fork(3) download
  1. #include <algorithm>
  2. #include <cassert>
  3. #include <iostream>
  4. #include <string>
  5. #include <vector>
  6.  
  7. template <typename T>
  8. void Combination(const std::vector<T>& v, std::size_t count)
  9. {
  10. assert(count <= v.size());
  11. std::vector<bool> bitset(v.size() - count, 0);
  12. bitset.resize(v.size(), 1);
  13.  
  14. do {
  15. for (std::size_t i = 0; i != v.size(); ++i) {
  16. if (bitset[i]) {
  17. std::cout << v[i] << " ";
  18. }
  19. }
  20. std::cout << std::endl;
  21. } while (std::next_permutation(bitset.begin(), bitset.end()));
  22. }
  23.  
  24. int main() {
  25. std::vector<std::string> original {"Brown", "Yellow", "Blue"};
  26.  
  27. Combination(original, 2);
  28. return 0;
  29. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
Yellow Blue 
Brown Blue 
Brown Yellow