fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <set>
  4.  
  5. using namespace std;
  6.  
  7. template <typename Container>
  8. std::ostream& Print(ostream& out, const Container& container);
  9.  
  10.  
  11. template <typename Element>
  12. ostream& operator<<(ostream& out, const set<Element>& container) {
  13. out << "{";
  14. Print(out, container);
  15. out << "}";
  16. return out;
  17. }
  18.  
  19. template <typename Element>
  20. ostream& operator<<(ostream& out, const vector<Element>& container) {
  21. out << "[";
  22. Print(out, container);
  23. out << "]";
  24. return out;
  25. }
  26.  
  27. template <typename Container>
  28. std::ostream& Print(ostream& out, const Container& container) {
  29. bool isnt_first = false;
  30. for (const auto& element : container) {
  31. if (isnt_first) {
  32. out << ", ";
  33. }
  34. else {
  35. isnt_first = true;
  36. }
  37. out << element;
  38. }
  39. return out;
  40. }
  41.  
  42.  
  43. int main() {
  44.  
  45. //setlocale(LC_ALL, "ru");
  46.  
  47. const set<string> cats = { "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s };
  48. cout << cats << endl;
  49.  
  50. const vector<int> ages = { 10, 5, 2, 12 };
  51. cout << ages << endl;
  52.  
  53. const vector<vector<string>> a = {
  54. { "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s },
  55. { "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s },
  56. { "Мурка"s, "Белка"s, "Георгий"s, "Рюрик"s }
  57. };
  58. cout << a << endl;
  59. }
  60.  
Success #stdin #stdout 0.01s 5520KB
stdin
Standard input is empty
stdout
{Белка, Георгий, Мурка, Рюрик}
[10, 5, 2, 12]
[[Мурка, Белка, Георгий, Рюрик], [Мурка, Белка, Георгий, Рюрик], [Мурка, Белка, Георгий, Рюрик]]