fork download
  1. #include <iostream>
  2. #include <algorithm>
  3. #include <deque>
  4. #include <forward_list>
  5. #include <list>
  6. #include <vector>
  7. using container = std::deque<bool>;
  8.  
  9.  
  10. template<typename C>
  11. void uniquify(C& v) {
  12. v.erase(std::unique(v.begin(), v.end(),
  13. [](bool a, bool b){ return !(a||b); }),
  14. v.end());
  15. }
  16. template<typename C>
  17. std::ostream& show(std::ostream& out, const C& v) {
  18. char sep = '{';
  19. for (auto const& val : v) {
  20. out << sep << ' ' << (val ? "true" : "false");
  21. sep = ',';
  22. }
  23. return out << '}';
  24. }
  25. int main() {
  26. container vec{false, false, false, false, true, true, false, true, false, false};
  27. show(std::cout, vec) << '\n';
  28. uniquify(vec);
  29. show(std::cout, vec) << '\n';
  30. return 0;
  31. }
  32.  
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
{ false, false, false, false, true, true, false, true, false, false}
{ false, true, true, false, true, false}