fork download
  1. #include <algorithm>
  2. #include <functional>
  3. #include <iostream>
  4. #include <iterator>
  5.  
  6. using namespace std;
  7.  
  8. int main() {
  9. const int a[] = {1, 2, 2, 1, 3, 3, 3, 2, 1, 1};
  10.  
  11. {
  12. auto i = cbegin(a);
  13.  
  14. for (auto j = adjacent_find(cbegin(a), cend(a)); j != cend(a); i = j, j = adjacent_find(i, cend(a))) {
  15. copy(i, ++j, ostream_iterator<decltype(*cbegin(a))>(cout, " "));
  16. cout << endl;
  17. }
  18. copy(i, cend(a), ostream_iterator<decltype(*cbegin(a))>(cout, " "));
  19. cout << endl;
  20. }
  21.  
  22. cout << endl;
  23.  
  24. {
  25. auto i = cbegin(a);
  26.  
  27. for (auto j = adjacent_find(cbegin(a), cend(a), not_equal_to<decltype(*cbegin(a))>()); j != cend(a); i = j, j = adjacent_find(i, cend(a), not_equal_to<decltype(*cbegin(a))>())) {
  28. copy(i, ++j, ostream_iterator<decltype(*cbegin(a))>(cout, " "));
  29. cout << endl;
  30. }
  31. copy(i, cend(a), ostream_iterator<decltype(*cbegin(a))>(cout, " "));
  32. cout << endl;
  33. }
  34. }
Success #stdin #stdout 0s 3460KB
stdin
Standard input is empty
stdout
1 2 
2 1 3 
3 
3 2 1 
1 

1 
2 2 
1 
3 3 3 
2 
1 1