CPP   32
make list char
Guest on 7th February 2023 02:10:51 AM


  1. #include <iostream>
  2. #include <cassert>
  3. #include <list>
  4. #include <string>
  5. #include <algorithm>  // for reverse
  6. using namespace std;
  7. template <typename Container>
  8. Container make(const char s[])
  9. {
  10.   return Container(&s[0], &s[strlen(s)]);
  11. }
  12.  
  13. int main()
  14. {
  15.   list<char> list1 = make< list<char> >("Bjarne Stroustrup"),
  16.              list2;
  17.   list<char>::iterator i;
  18.  
  19.   cout << "Demonstrating list push_back function" << endl;
  20.   for (i = list1.begin(); i != list1.end(); ++i)
  21.     list2.push_back(*i);
  22.   assert (list1 == list2);
  23.  
  24.   list1 = make< list<char> >("Bjarne Stroustrup");
  25.   list2 = make< list<char> >("");
  26.    
  27.   cout << "Demonstrating list push_front function" << endl;
  28.   for (i = list1.begin(); i != list1.end(); ++i)
  29.     list2.push_front(*i);
  30.   assert (list2 == make< list<char> >("purtsuortS enrajB"));
  31.  
  32.   // Show that list2 is the reverse of list1, by using
  33.   // STL generic reverse function to reverse list1:
  34.   reverse(list1.begin(), list1.end());
  35.   assert (list2 == list1);
  36.   cout << " --- Ok." << endl;
  37.   return 0;
  38. }

Raw Paste

Login or Register to edit or fork this paste. It's free.