fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4.  
  5. void print_vec(const char* label, const std::vector<int>& vec) {
  6. std::cout << label << ": ";
  7. for (int v : vec) {
  8. std::cout << v << ", ";
  9. }
  10. std::cout << "\n";
  11. }
  12.  
  13. int main() {
  14. std::vector <int> vec1 { 4, 1, 2, 2, 5 };
  15. std::vector <int> vec2;
  16.  
  17. print_vec("v1", vec1);
  18.  
  19. vec2.reserve(vec1.size());
  20.  
  21. for (int v : vec1) {
  22. auto it = std::lower_bound(vec2.begin(), vec2.end(), v);
  23. if (it == vec2.end() || *it != v)
  24. vec2.emplace(it, v);
  25. print_vec("v2", vec2);
  26. }
  27.  
  28. print_vec("Fin", vec2);
  29.  
  30.  
  31. return 0;
  32. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
v1: 4, 1, 2, 2, 5, 
v2: 4, 
v2: 1, 4, 
v2: 1, 2, 4, 
v2: 1, 2, 4, 
v2: 1, 2, 4, 5, 
Fin: 1, 2, 4, 5,