vector 容器的用法

来源:互联网 发布:神优化的大型单机游戏 编辑:程序博客网 时间:2024/04/28 06:08

vector 是 C++ 标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。vector 之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说 vector 是一个能够存放任意类型的动态数组,能够增加和压缩数据。为了可以使用 vector ,必须包含 #include <vector> 。

          Vector 属于std命名域的,因此需要通过命名限定,有如下三种方式。

[cpp] view plaincopyprint?
  1. using std::vector;     vector<int> v;    
  2. std::vector<int> v;  // <span style="font-family:'Hiragino Sans GB W3','Hiragino Sans GB',Arial,Helvetica,simsun,u5b8bu4f53; font-size:12px">或者连在一起,使用全名。</span>  
  3. using namespace std; // <span style="font-family:'Hiragino Sans GB W3','Hiragino Sans GB',Arial,Helvetica,simsun,u5b8bu4f53; font-size:12px">建议使用全局的命名域方式。</span>  

         1、vector的声明

[cpp] view plaincopyprint?
  1. vector<ElemType> c;  // 创建一个空的vector  
  2. vector<ElemType> c1(c2);   // 创建一个vector c1,并用c2去初始化c1  
  3. vector<ElemType> c(n);  // 创建一个含有n个ElemType类型数据的vector;  
  4. vector<ElemType> c(n,elem);   // 创建一个含有n个ElemType类型数据的vector,并全部初始化为elem;  
  5. c.~vector<ElemType>();   // 销毁所有数据,释放资源;  

        2、vector容器中常用的函数。(c为一个容器对象)

[cpp] view plaincopyprint?
  1. c.push_back(elem);  // 在容器最后位置添加一个元素elem  
  2. c.pop_back();  // 删除容器最后位置处的元素  
  3. c.at(index);  // 返回指定index位置处的元素  
  4. c.begin();  // 返回指向容器最开始位置数据的指针  
  5. c.end();  // 返回指向容器最后一个数据单元的指针+1  
  6. c.front();  // 返回容器最开始单元数据的引用  
  7. c.back();  // 返回容器最后一个数据的引用  
  8. c.max_size();   // 返回容器的最大容量  
  9. c.size();  // 返回当前容器中实际存放元素的个数  
  10. c.capacity();  //  
  11. c.resize();  // 重新设置vector的容量  
  12. c.reserve();  // 同c.resize()  
  13. c.erase(p);  // 删除指针p指向位置的数据,返回下指向下一个数据位置的指针(迭代器)  
  14. c.erase(begin,end);  // 删除begin,end区间的数据,返回指向下一个数据位置的指针(迭代器)  
  15. c.clear();  // 清除所有数据  
  16. c.rbegin();  // 将vector反转后的开始指针返回(其实就是原来的end-1)  
  17. c.rend();  // 将vector反转后的结束指针返回(其实就是原来的begin-1)  
  18. c.empty();  // 判断容器是否为空,若为空返回true,否则返回false  
  19. c1.swap(c2);  // 交换两个容器中的数据  
  20. c.insert(p,elem);  // 在指针p指向的位置插入数据elem,返回指向elem位置的指针         
  21. c.insert(p,n,elem);  // 在位置p插入n个elem数据,无返回值  
[cpp] view plaincopyprint?
  1. c.insert(p,begin,end);  // 在位置p插入在区间[begin,end)的数据,无返回值  


    3、vector中的操作

    operator[] 如: c[i];

    同at()函数的作用相同,即取容器中的数据。


    4、简单实例代码

    输入与删除


    

    元素的访问


    

   排序与查询


    

    二维容器


原文:http://xiamaogeng.blog.163.com/blog/static/1670023742010102494039234/

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 深圳摇号审核通过后怎么办 京东过保修期了怎么办 买的商业预付卡怎么办 壹钱包预付卡金额不足怎么办 美发店换老板原来预付卡怎么办 超市预付卡现超市停业怎么办? 利群购物卡丢了怎么办 利群金卡丢了怎么办 坐飞机洗漱用品超过规定怎么办 请律师团了解后怎么办 三星s9开不了机怎么办 三星手机开不了机了怎么办 安卓手机音响进水了怎么办 音响不读u盘怎么办 虎牌水壶显示f2怎么办 海尔冰箱门关不严没吸力怎么办 忘记京东金融账号怎么办 京东账号手机号已停用怎么办 京东账户忘了怎么办 京东登录名忘了怎么办? 京东已经发货了怎么办 苹果7p黑亮掉漆怎么办 淘宝卖家不肯退运费怎么办 健身付款收据丢了怎么办 收据丢了怎么办能退款 苹果售后不承认基带问题怎么办 电话卡欠费了不用了怎么办 软件移不到sd卡怎么办 手机显示sd卡受损怎么办 美的冰箱出现e6怎么办 美的冰箱显示e6怎么办 冰箱电脑板坏了怎么办 笔记本网线接口坏了怎么办 蓝p吃了一片 怎么办 sd卡上锁了忘记密码怎么办 手机sd卡被锁定怎么办 冰箱制冷管堵了怎么办 冰箱的管子破了怎么办 淘宝京东e卡冻结怎么办 苏宁任性付冻结怎么办 苏宁订单删除了怎么办