STL容器使用DEMO-vector

本文详细介绍了 C++ STL 中 vector 容器的基本操作与使用方法,包括插入、删除元素、容量与大小的区别、元素访问及容器间的赋值与交换等,并通过示例代码展示了如何运用这些功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Code:
  1. //////////////////////////////////////////////////////////////////////////   
  2. //  CopyRight(c) 2009, YOYO, All Rights Reserved.   
  3. //  Author: LIN YiQian   
  4. //  Created: 2009/08/24   
  5. //  Describe: STL vector 使用DEMO   
  6. //////////////////////////////////////////////////////////////////////////   
  7. #include <iostream>   
  8. #include <vector>   
  9.   
  10. using namespace std;   
  11.   
  12. typedef vector<int> INT_VEC;   
  13.   
  14. // 打印Vector   
  15. void PrintVector(INT_VEC vecInt)   
  16. {   
  17.     for (INT_VEC::iterator vecIter = vecInt.begin(); vecIter != vecInt.end(); ++vecIter)   
  18.     {   
  19.         cout << *vecIter ;   
  20.     }   
  21.     cout << endl;   
  22. }   
  23.   
  24. // 逆向打印Vector   
  25. void PrintVectorReversse(INT_VEC vecInt)   
  26. {   
  27.     for (INT_VEC::reverse_iterator vecRIter = vecInt.rbegin(); vecRIter != vecInt.rend(); ++vecRIter)   
  28.     {   
  29.         cout << *vecRIter;   
  30.     }   
  31.     cout << endl;   
  32. }   
  33.   
  34. void main(void)   
  35. {   
  36.     INT_VEC vecInt1;   
  37.     cout << "vecInt1(): "; PrintVector(vecInt1);   
  38.   
  39.     //  insert()   
  40.     {   
  41.         vecInt1.insert(vecInt1.begin(), 5);   
  42.         vecInt1.insert(vecInt1.begin()+1, 4, 6);   
  43.         cout << "vecInt1() after Insert: "; PrintVector(vecInt1);   
  44.     }   
  45.   
  46.     INT_VEC vecInt2(10, 3);   
  47.     cout << "vecInt2(10, 3): "; PrintVector(vecInt2);   
  48.   
  49.     //  erase()   
  50.     {   
  51.         vecInt2.erase(vecInt2.begin()+5);   
  52.         cout << "vecInt2 after Erase: "; PrintVector(vecInt2);   
  53.   
  54.         cout << "vecInt2 size: " << vecInt2.size() << endl;   
  55.   
  56.         vecInt2.erase(vecInt2.begin()+3, vecInt2.end()-3);   
  57.         cout << "vecInt2 after Erase: "; PrintVector(vecInt2);   
  58.     }   
  59.   
  60.     //  size()   
  61.     {   
  62.         cout << "vecInt2 size: " << vecInt2.size() << endl;   
  63.     }   
  64.   
  65.     //  capacity()   
  66.     {   
  67.         cout << "vecInt2 Capacity: " << vecInt2.capacity() << endl;   
  68.     }   
  69.   
  70.     //  max_size()   
  71.     {   
  72.         cout << "vecInt2 Max size: " << vecInt2.max_size() << endl;   
  73.     }   
  74.   
  75.     INT_VEC vecInt3(vecInt2);   
  76.     cout << "vecInt3(vecInt2): "; PrintVector(vecInt3);   
  77.   
  78.     //  insert()   
  79.     {   
  80.         vecInt3.insert(vecInt3.begin(), vecInt1.begin(), vecInt1.end()-1);   
  81.         cout << "vecInt1 after Insert: "; PrintVector(vecInt1);   
  82.         cout << "vecInt3 after Insert: "; PrintVector(vecInt3);   
  83.     }   
  84.   
  85.     //  reverse()   
  86.     {   
  87.         cout << "vecInt3 Reverse: "; PrintVectorReversse(vecInt3);   
  88.     }   
  89.   
  90.     INT_VEC vecInt4(vecInt3.begin()+2, vecInt3.end()-5);   
  91.     cout << "vecInt4(vecInt3.begin()+2, vecInt3.end()-5): "; PrintVector(vecInt4);   
  92.   
  93.     //  assign()   
  94.     {   
  95.         vecInt4.assign(4, 7);   
  96.         cout << "vecInt4 after Assign: "; PrintVector(vecInt4);   
  97.     }   
  98.   
  99.     //  pop_back() & push_back()   
  100.     {   
  101.         vecInt4.pop_back();   
  102.         cout << "vecInt4 after Pop_Back: "; PrintVector(vecInt4);   
  103.   
  104.         vecInt4.push_back(8);   
  105.         cout << "vecInt4 after Push_Back: "; PrintVector(vecInt4);   
  106.     }   
  107.   
  108.     //  at() & operator[] - Get Value   
  109.     {   
  110.         cout << "vecInt4 first elem: " << vecInt4.at(0) << endl;   
  111.         cout << "vecInt3 first elem: " << vecInt3[0] << endl;   
  112.     }   
  113.   
  114.     //  operator cmp   
  115.     {   
  116.         cout << "vecInt4 == vecInt3?: " << boolalpha << (vecInt4 == vecInt3) << endl;   
  117.         cout << "vecInt4 < vecInt3?: " << boolalpha << (vecInt4 < vecInt3) << endl;   
  118.     }   
  119.   
  120.     //  swap()   
  121.     {   
  122.         vecInt4.swap(vecInt3);   
  123.         cout << "vecInt4 after Swap: "; PrintVector(vecInt4);   
  124.         cout << "vecInt3 after Swap: "; PrintVector(vecInt3);   
  125.     }   
  126.   
  127.     //  front() & back()   
  128.     {   
  129.         cout << "vecInt4 front: " << vecInt4.front() << endl;   
  130.         cout << "vecInt4 back: " << vecInt4.back() << endl;   
  131.     }   
  132.   
  133.     //  empty()   
  134.     {   
  135.         cout << "vecInt4 Empty?: " << boolalpha << vecInt4.empty() << endl;   
  136.     }   
  137.   
  138.     //  clear()   
  139.     {   
  140.         vecInt4.clear();   
  141.         cout << "vecInt4 after Clear: "; PrintVector(vecInt4);   
  142.         cout << "vecInt4 size: " << vecInt4.size() << endl;   
  143.         cout << "vecInt4 Empty?: " << boolalpha << vecInt4.empty() << endl;   
  144.     }   
  145.        
  146.     system("pause");   
  147. }  

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值