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

STL

开发平台:

C/C++

  1. //文件名:CHAPTER7-29.cpp
  2. #include <deque>
  3. #include <iostream>
  4. int main()
  5. {
  6. //default constructor
  7. std::deque<int> c1 ;
  8. //create deque with 10 copies of 4
  9. std::deque<int> c2(10, 4) ;
  10. //copy constructor
  11. std::deque<int> c3(c2) ;
  12. int ai[] = {0, 1, 2, 3, 4, 5} ;
  13. int i ;
  14. std::deque<int> c4 ;
  15. //get_allocator
  16. std::deque<int>::allocator_type a1 = c4.get_allocator() ;
  17. //push_back
  18. for(i = 0; i < 5; i++) c4.push_back(ai[i]) ;
  19. //range copy constructor
  20. std::deque<int> c5(c4.begin(), c4.end()) ;
  21. //begin, end
  22. std::cout << "c4 (using begin, end) = " ;
  23. std::deque<int>::iterator Iter ;
  24. for(Iter = c4.begin(); Iter != c4.end(); Iter++) std::cout << *Iter << ", " ;
  25. std::cout << std::endl ;
  26. //rbegin, rend
  27. std::cout << "c4 (using rbegin, rend) = " ;
  28. std::deque<int>::reverse_iterator RevIter ;
  29. for(RevIter = c4.rbegin(); RevIter != c4.rend(); RevIter++) std::cout << *RevIter << ", " ;
  30. std::cout << std::endl ;
  31. //assign
  32. c2.assign(c5.begin(), c5.begin() + 3) ;
  33. c1.assign(10, 4) ;
  34. //at
  35. std::cout << "third element in c1 = " << c1.at(3) << std::endl ;
  36. //operator[]
  37. std::cout << "c4[3] = " << c4[3] << std::endl ;
  38. //back
  39. std::cout << "last element in c2 = " << c2.back() << std::endl ;
  40. //front
  41. std::cout << "first element in c2 = " << c2.front() << std::endl ;
  42. //size
  43. std::cout << "number of elements in c2 = " << c2.size() << std::endl ;
  44. //max_size
  45. std::cout << "max number of elements c2 can hold using current allocator = " 
  46. << c2.max_size() << std::endl ;
  47. //erase
  48. c3.erase(c3.begin(), c3.begin() + 4) ;
  49. //clear
  50. c2.clear() ;
  51. //empty
  52. if (c2.empty() == true) std::cout << "c2 is now empty" << std::endl ;
  53. //resize
  54. c2.resize(10, 30) ;
  55. std::cout << "number of elements in c2 = " << c2.size() << std::endl ;
  56. std::cout << "last element in c2 = " << c2.back() << std::endl ;
  57. std::cout << "first element in c2 = " << c2.front() << std::endl ;
  58. //push_front
  59. c2.push_front(25) ;
  60. std::cout << "first element in c2 = " << c2.front() << std::endl ;
  61. //pop_back
  62. c2.pop_back() ;
  63. std::cout << "last element in c2 = " << c2.back() << std::endl ;
  64. //pop_front
  65. c2.pop_front() ;
  66. std::cout << "first element in c2 = " << c2.front() << std::endl ;
  67. //swap
  68. c3.swap(c2) ;
  69. std::cout << "number of elements in c3 = " << c3.size() << std::endl ;
  70. std::cout << "last element in c3 = " << c3.back() << std::endl ;
  71. std::cout << "first element in c3 = " << c3.front() << std::endl ;
  72. //insert
  73. c1.insert(c1.begin(), 20) ;
  74. c1.insert(c1.begin()+1, 4, 10) ;
  75. c1.insert(c1.begin()+2, c5.begin(), c5.end()) ;
  76. std::cout << "c1 = " ;
  77. for(Iter = c1.begin(); Iter != c1.end(); Iter++) std::cout << *Iter << ", " ;
  78. std::cout << std::endl ;
  79. return 0 ;
  80. }