fork download
  1. #include <iostream>
  2. #include <list>
  3. using namespace std;
  4.  
  5. int main() {
  6. list<int> list_1 = {1, 2, 4, 4, 6, 9};
  7. list<int> list_2 = {1, 0, 4, 4, 7, 8};
  8. list_1.unique(); // O(n)
  9. list_2.unique(); // O(n)
  10.  
  11. list_1.splice(list_1.begin(), list_2, list_2.begin(), list_2.end()); // O(n)
  12.  
  13. cout << "lists after join\n";
  14. for (int &i : list_1)
  15. cout << i << ' ';
  16.  
  17. size_t before = list_1.size();
  18. list_1.sort(); // O(n * log2(n))
  19. list_1.unique(); // O(n)
  20. size_t after = list_1.size();
  21.  
  22. cout << "\nlists after removing identical elements\n";
  23. for (int &i : list_1)
  24. cout << i << ' ';
  25.  
  26. cout << "\nthere is " << before - after << " identical elements\n";
  27.  
  28. return 0;
  29. }
Success #stdin #stdout 0s 3464KB
stdin
Standard input is empty
stdout
lists after join
1 0 4 7 8 1 2 4 6 9 
lists after removing identical elements
0 1 2 4 6 7 8 9 
there is 2 identical elements