c++ vector
程序员文章站
2022-03-01 23:21:33
...
vector 表示同一种对象的集合。vector 是一个类模板,vector 本身不是类。但却是编译器生成类的说明,当使用模板实例化类时必须指明实例化成何种类型,vector 使用尖括号 <> 来指明实例化类型。vector 能容纳绝大多数对象作为其元素(引用除外。引用不是对象),甚至 vector 本身。
vector 的初始化同 string 同样,另外C++11 还为 vector 加入了列表初始化的方法。用花括号括起来的0个或多个初始元素值被赋给 vector 对象。
vector<string> vs = {"cs","dn"};
列表初始化会给阅读带来混淆,由于列表中的值既能够表示初始值也能够表示元素数量,编译器会首先觉得是列表初始化(将列表中的值当作初始值来处理)。假设不行,才会考虑其它初始化方式。
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有两个元素。10和1
vector<string> v5{"Hello","Hi"};//v5有两个元素,列表初始化
vector<string> v6{10};//v6有10个空串元素
向 vector 中加入元素必须使用 vector 的成员函数 push_back() 。将一个值加入到 vector 的末尾。
不能使用下标运算符。 下标运算符仅仅是用来訪问 vector(string) 对象已存在的元素。下标运算符的使用必须确保其在合理范围内(大于 0 且小于容量)。
vector若要使用 size_type 类型必须明白指出其是由哪一类型定义的。
vector<int>::size_type;//正确
vector::size_type;//错误