前言
为了准备实习面试,决定再系统性的复习一遍C++。这一次姑且写多几篇博客,把书里的重点挑出来方便自己复习。
P.S. 使用书籍《Primer C++》第五版
类模板vector
如何定义和初始化vector对象
vector<T> v1; //v1是一个空vector,潜在元素是T类型
vector<T> v2(v1); //v2包含有v1所有元素的副班
vector<T> v2 = v1; //等价于上者
vector<T> v3(n , val); //v3包含n个元素值为val的元素
vector<T> v4(n); //v4包含了n个重复执行了值初始化的对象
vector<T> v5{a,b,c...} //v5包含了初始值个数的元素且赋予元素对应初始值
vector可以容纳大多数类型的对象作为元素(包括了类模板)
但是不能把引用作为元素。因为引用不是对象。
C++11新标准:列表初始化vector对象
vector<string> articles = {"asd","qwe","sss"}; //使用花括号{}
上面的vector对象使用了列表初始化,包含了三个字符串元素。
创建指定数量的元素
还可以用vector对象容纳的元素数量和统一初始值来初始化vector对象。
vector<int> v1(10 , -1); //10个int类型值为-1的元素
列表初始值&元素数量
注意观察以下代码区别。
vector<int> v1(10); //v1有10个元素,值为0
vector<int> v2{10}; //v2有1个元素,值为10
//
vector<int> v3(10 , 1); //v3有10个元素。每个值都为1
vector<int> v4{10 , 1}; //v4有2个元素,值分别为10和1
向vector对象中添加元素
使用vector的成员函数push_back向vector对象中添加新元素。
push_back负责把一个值当成vector对象的尾元素添加到vector对象的“尾端”。
vector<int> v1;
for(int i = 0; i <10; i++ ) {
v1.push_back(i);
} //循环结束后,v1中有10个对象,值从0到9