CHAPTER8-41.cpp
上传用户:fjc899
上传日期:2007-07-03
资源大小:187k
文件大小:1k
源码类别:

STL

开发平台:

C/C++

  1. //文件名:CHAPTER8-41.cpp
  2. #include <iostream> 
  3. #include <list>
  4. #include <algorithm> 
  5. #if _MSC_VER > 1020   // if VC++ version is > 4.2
  6.    using namespace std;  // std c++ libs implemented in std
  7. #endif
  8. void printLists(const list<int>& l1, const list<int>& l2)
  9. {
  10. cout << "list1: "; 
  11. copy (l1.begin(), l1.end(), ostream_iterator<int>(cout," ")); 
  12. cout << endl << "list2: "; 
  13. copy (l2.begin(), l2.end(), ostream_iterator<int>(cout," ")); 
  14. cout << endl << endl;
  15. };
  16. int main() 
  17. {
  18. //create two empty lists
  19. list<int> list1, list2;
  20. //fill both lists with elements
  21. for (int i=0; i<6; ++i) 
  22. list1.push_back(i); 
  23. list2.push_front(i);
  24. printLists(list1, list2);
  25. //insert all elements of list1 before the first element with value 3 of list2 //-find() returns an iterator to the first element with value 3 
  26. list2.splice(find(list2.begin(),list2.end(), // destination position 
  27. 3), list1); // source list
  28. printLists(list1, list2);//move first element to the end
  29. list2.splice(list2.end(), // destination position
  30. list2, // source list
  31. list2.begin()); // source position
  32. printLists(list1, list2);
  33. //sort second list, assign to list1 and remove duplicates
  34. list2.sort(); 
  35. list1 = list2; 
  36. list2.unique(); 
  37. printLists(list1, list2);
  38. //merge both sorted lists into the first list
  39. list1.merge(list2); 
  40. printLists(list1, list2); 
  41. return 0;
  42. }