1 基本操作

(1)头文件#include<vector>.

(2)创建vector对象,vector<int> vec;

(3)尾部插入数字:vec.push_back(a);

(4)使用下标访问元素,cout<<vec[0]<<endl;记住下标是从0开始的。

(5)使用迭代器访问元素.

vector<int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;

(6)插入元素:    vec.insert(vec.begin()+i,a);在第i+1个元素前面插入a;

(7)删除元素:    vec.erase(vec.begin()+2);删除第3个元素

        vec.erase(vec.begin()+i,vec.end()+j);删除区间[i,j-1];区间从0开始

(8)向量大小:vec.size();

(9)清空:vec.clear();

vector中的元素可以使任意型别的T,必须具备可设置可复制两个属性,包括int、double、string以及结构体或其他自定义的类型。但是要注意:结构体要定义为全局的,否则会出错

2、其它成员函数

vec.assign(beg,end)      vec.assign(n,elem)
  将[beg;
end)区间中的数据赋值给vec。将n个elem的拷贝赋值给vec。
vec.back()      //
传回最后一个数据,不检查这个数据是否存在。
vec.begin()     //
传回迭代器中的第一个数据地址。
vec.capacity()  //
返回容器中数据个数。
vec.clear()
    // 移除容器中所有数据。
vec.empty()     //
判断容器是否为空。
vec.end()  
    // 指向迭代器中末端元素的下一个,指向一个不存在元素。
vec.erase(pos)  //
删除pos位置的数据,传回下一个数据的位置。
vec.erase(beg,end)
 //删除[beg,end)区间的数据,传回下一个数据的位置。
vec.front()     //
传回第一个数据。

get_allocator //
使用构造函数返回一个拷贝。

vec.insert(pos,elem)    //
在pos位置插入一个elem拷贝,传回新数据位置。
vec.insert(pos,n,elem)  //
在pos位置插入n个elem数据。无返回值。
vec.insert(pos,beg,end) //
在pos位置插入在[beg,end)区间的数据。无返回值。
  
vec.max_size()       //
返回容器中最大数据的数量。
vec.pop_back()       //
删除最后一个数据。
vec.push_back(elem)  //
在尾部加入一个数据。
vec.rbegin()         //
传回一个逆向队列的第一个数据。
vec.rend()           //
传回一个逆向队列的最后一个数据的下一个位置。
vec.resize(num)      //
重新指定队列的长度。
vec.reserve()        //
保留适当的容量。
vec.size()  
        // 返回容器中实际数据的个数。

vec1.swap(c2)
swap(c1,c2)        //
将c1和c2元素互换。同上操作。

vec.at(idx)    //传回索引idx所指的数据,如果idx越界,抛出out_of_range。

operator[]         //
返回容器中指定位置的一个引用。

  operator[]主要是为了与C语言进行兼容。它可以像C语言数组一样操作。但at()是我们的首选,因为at()进行了边界检查,如果访问超过了vector的范围,将抛出一个例外。由于operator[]容易造成一些错误,所有我们很少用它。

  同样vector提供了erase(),pop_back(),clear()来删除数据,当删除数据时,应该知道要删除尾部的数据,或者是删除所有数据,还是个别的数据。

3、 初始化   
vector    c             //
创建一个空的vector。
vector
c1(c2)          // 复制一个vector
vector c(n)            //
创建一个vector,含有n个数据,数据均已缺省构造产生
vector c(n, elem)      //
创建一个含有n个elem拷贝的vector
vector c(beg,end)      //
创建一个含有n个elem拷贝的vector

最新文章

  1. Security &#187; Authorization &#187; 基于声明的授权
  2. UItableView嵌套UICollectionView
  3. asp.net预定义的HttpModule
  4. 容易被忽略的CSS特性
  5. ylbtech-dbs:ylbtech-PurpleBill(票据管理系统)
  6. libsvm使用方法总结
  7. vs2012如何创建报表
  8. 获取aplicationContext对象,从而获取任何注入的对象
  9. 重新想象 Windows 8 Store Apps (27) - 选取器: 联系人选取窗口, 自定义联系人选取窗口
  10. 常用DOM API
  11. PowerBI开发 第五篇:关系的设计
  12. WPF笔记1 用VS2015创建WPF程序
  13. python笔记--2--字符串、正则表达式
  14. Powershell:关于PSCustomObject你想知道的一切(译)
  15. Linux安装NodeJS
  16. QEMU Networking
  17. windows2008系统缓存修改
  18. jqgrid 设置多表头
  19. mysql 5.7.10 启动多实例笔记
  20. node使用MySQL数据库

热门文章

  1. @Autowired与@Resource的区别
  2. Haproxy安装配置及日志输出问题
  3. hive odbc
  4. springmvc 注解总结
  5. 关于Xcode7更新之后使用 SDWebImage 图片加载不出来
  6. mysql SELECT FOR UPDATE语句使用示例
  7. PHP常用的一些正则表达式
  8. ZOJ3802 Easy 2048 Again (状压DP)
  9. LINUX系统知识(转)
  10. SqlServer 还原他服数据库只建立发布却删除不了