标准库类型vector

来源:互联网 发布:火狐淘宝无法登陆 编辑:程序博客网 时间:2024/05/19 14:52

标准库类型vector表示对象的集合,其中所有对象的类型都是相同的,其实vector就一个动态数组,你可以随时往你定义vector对象中添加元素,它和动态数组不同的是,它里面还包含很多其他有用的方法。

定义和初始化vector对象
(1):头文件:

#include<vector>

(2):vector是类模板,定义时需要确定vector将要存放的类型
(3):初始化vector对象的方法:

默认初始化:vector a; //定义一个指定类型的空vector
列表初始化:vector b{a,b,c…} //c++11新标准提供的另外一种初始化的方法,
创建指定数量的元素:vector (n,a) //创建了n个类型为T的元素a;
值初始化:vector (n) //提供vector对象容纳的元素的数量但是使用默认的初始值

花括号和圆括号初始化vector对象时,使用花括号初始化时,只有提供的值不能用来作为该类型的值,才考虑用这样的值去构造vector对象,要想列表初始化vector对象,花括号里的值必须和元素类型相同。

vector <string> v1{10}  //v1有10个默认初始化元素vector <string> v2{10,"Hi"} //v2有10个值为'Hi'的元素

向vector对象添加元素
使用push_back函数想vector对象中添加元素,添加到容器的尾部,需要注意的一点是:如果循环内部包含有向vector对象添加元素的语句,则不能使用范围for循环。

其他vector操作

v.empty();    //如果v不含有任何元素,返回真,否则返回假v.size();     //返回v的元素个数v.push_back(t); //向v尾部添加元素tv[n];          //返回v中第n个元素的引用v1=v2;         //用v2中的元素拷贝替换v1的元素v1={a,b,c...};  //列表初始化v1v1==v2;        //v1和v2相等当且仅当它们的元素数量形同且对应位置的元素值相同v1!=v2;<,>,<=,>=      //以字典顺序比较

补充知识:

    vector<int> v{ 1,2,3,4,5 };    for (auto & i : v)  {...}         //for循环定义引用类型,可以通过i来修改容器内元素

vector对象(以及string对象)的下标运算符可用于访问以存在的元素,而不能用于添加元素

0 0
原创粉丝点击