C++ vector类模板和auto关键字

时间:2021-03-15 04:18:33

vector类模板

定义和初始化

方法 含义
vectorv1 v1是一个空的vector,它潜在的元素是T类型,执行默认的初始化
vectorv2(v1) v2包含v1的所有元素的副本
vectorv2=v1 等价于v2(v1),v2中包含有v1所有元素的副本
vectorv3(n,val) v3包含了n个重复的元素,每个元素的值都是val
vectorv4(n) v4包含了n个重复地执行初始化的对象
vectorv5{a,b,c …}【C++11】 v5包含了初始值个数的元素,每个元素被赋予相应的初始值
vectorv5={a,b,c …}【C++11】 等价于v5{a,b,c…}

是初始化还是元素数量

方法 含义
vectorv1(10); v1有10个元素,每个值都是0
vectorv2{10}; v2有1个元素,该元素的值是10
vectorv3(10,1); v3有10个元素,每个值都是1
vectorv4{10,1}; v4有两个元素,值分别是10,和1

vector上的操作

操作 含义‘
v.empty() 如果v不含有任何元素,则返回真;否则返回假
v.size() 返回v中的元素的个数
v.push_back(t) 向v的尾端添加一个值为t的元素
v[n] 返回v中第n个位置上的元素的引用
v1=v2 用v2中的元素拷贝替换v1中的元素
v1={a,b,c …} 用列表中元素拷贝替换v1中的元素
v1==v2 v1和v2相等当且仅当它们的元素的数量相同且且对应位置元素的值都相同
v1!=v2 -
<,<=,>,>= 以字典顺序进行比较

auto关键字【C++11】

C++11标准引入新的auto说明符,它能够让编译器替我们去分析表达式所属的类型,和原来那些只对应一种特定类型的说明符(比如int,double)不同,auto让编译器通过初始值来推算变量的类型。

示例代码【C++11】

vector<int>v{1,2,3,4,5};
for(auto i:v){
    cout<<i<<endl;
}