1. 定义初始化vector对象
vector<string> vStr; // 空容器vStr.push_back("ABC");
vStr.push_back("123");vector<string> vStr1(vStr); // 拷贝构造
vector<string> vStr2 = vStr; // 拷贝构造// C++ 11
vector<string> vStr3 = { "AAA", "BBB", "123" };
vector<string> vStr4{ "AAA", "BBB", "123" };vector<int> vStr5 = { 1, 2, 3 };
vector<int> vStr6{ 1, 2, 3 };// 创建指定数量的元素
vector<int> v(10, 1); // v中有10个1
vector<string> v1(5, "Hello"); // v1中有5个Hellovector<int> v2(5); // v2中有5个0
vector<string> v3(5); // v3中有5个空串 ""vector<int> v4{ 3 }; // v4中有1个3
vector<string> v5{ "Hello" }; // v5中有1个Hello
vector<string> v6{ 3 }; // v6中有3个空串 ""
vector<string> v7{ 3, "Hello" }; // v7中有3个Hello
vector<int> v8{ 3, 1 }; // v8中有元素3、1,等同于初始化列表
注意:vector不能装引用,如下:
vector<int&> v0; // 错误
vector<int*> v1; // 正确
2. vector常用函数
2.1 empty 判断是否为空
vector<int> v;
if(v.empty()) {
}
2.2 push_back 尾插
vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
2.3 emplace_back 尾插
2.4 size 返回元素个数
vector<string> v;
v.push_back("123");
v.push_back("ABC");
v.size(); // 2
2.5 clear 清空容器
vector<string> v;
v.push_back("123");
v.push_back("ABC");
v.size(); // 2v.clear();
v.size(); // 0
2.6 v[n] 返回vector容器中第n个元素
vector<string> v;
v.push_back("123");
v.push_back("ABC");v[1]; // "ABC"
2.7 = 赋值
vector<int> v1{ 1, 2, 3, 4 };
vector<int> v2{ 5 };v2 = v1; // v2中的元素就和v1中一样了v2 = { 99 }; // v2中的元素为99
2.8 ==、!= 判断两个容器中对应位置的元素是否相同
vector<int> v1{ 1, 2, 3, 4 };
vector<int> v2{ 5 };v1 == v2; // falsev2 = v1;
v1 == v2; // truev1.clear();
v2.clear();
v1 == v2; // true
2.9 范围for对vector的使用
vector<int> v { 1, 2, 3, 4 };
for(auto& val : v) {val *= 2; // v中每个元素都*2
}
遍历容器时,建议不要进行增、删、重分配,否则会造成迭代器失效。
待补充