下面是 C++ 中 vector 容器的声明、初始化、增删改查的完整攻略。
1. vector 容器的声明
vector 容器需要包含头文件 vector。声明 vector 对象时,需要指定存储元素的类型。
#include <vector>
// 声明存储int类型的vector对象
std::vector<int> vecInt;
// 声明存储string类型的vector对象
std::vector<std::string> vecStr;
2. vector 容器的初始化
vector 容器可以通过以下方式进行初始化:
2.1. 初始值列表
// 初始化存储int类型的vector对象
std::vector<int> vecInt = {1, 2, 3, 4, 5};
// 初始化存储string类型的vector对象
std::vector<std::string> vecStr = {"hello", "world"};
2.2. 重复值初始化
// 初始化存储int类型的vector对象,全部填充为3
std::vector<int> vecInt(5, 3);
// 初始化存储string类型的vector对象,全部填充为"hello"
std::vector<std::string> vecStr(10, "hello");
2.3. 复制初始化
// 初始化存储int类型的vector对象,使用其他int类型的vector对象初始化
std::vector<int> vecInt1 = {1, 2, 3, 4, 5};
std::vector<int> vecInt2(vecInt1);
// 通过拷贝赋值方式初始化存储int类型的vector对象
std::vector<int> vecInt3;
vecInt3 = vecInt1;
3. vector 容器的增删改查
3.1. 添加元素
3.1.1. push_back() 函数
使用 push_back() 函数向 vector 容器尾部添加元素。
std::vector<int> vecInt = {1, 2, 3};
// 添加元素4
vecInt.push_back(4);
3.1.2. insert() 函数
使用 insert() 函数在指定位置插入一个元素或一组元素。
std::vector<int> vecInt = {1, 2, 3};
// 在位置1插入元素4
vecInt.insert(vecInt.begin() + 1, 4);
// 在位置1插入元素4、5、6
vecInt.insert(vecInt.begin() + 1, {4, 5, 6});
3.2. 删除元素
3.2.1. pop_back() 函数
使用 pop_back() 函数从 vector 容器尾部删除一个元素。
std::vector<int> vecInt = {1, 2, 3};
// 删除尾部元素3
vecInt.pop_back();
3.2.2. erase() 函数
使用 erase() 函数从指定位置删除一个元素或一组元素。
std::vector<int> vecInt = {1, 2, 3};
// 删除位置1的元素
vecInt.erase(vecInt.begin() + 1);
// 删除位置1、2、3上的元素
vecInt.erase(vecInt.begin() + 1, vecInt.begin() + 4);
3.3. 修改元素
可以通过下标方式或迭代器方式对 vector 容器中的元素进行修改。
std::vector<int> vecInt = {1, 2, 3};
// 修改位置1上的元素为4
vecInt[1] = 4;
* (vecInt.begin() + 2) = 5;
3.4. 查询元素
3.4.1. 使用下标查询
使用下标方式查询 vector 容器中的元素。
std::vector<int> vecInt = {1, 2, 3};
// 查询位置1上的元素
int val = vecInt[1];
// 查询尾部元素
val = vecInt.back();
3.4.2. 使用迭代器查询
使用迭代器方式查询 vector 容器中的元素。
std::vector<int> vecInt = {1, 2, 3};
// 查询位置1上的元素
int val = *(vecInt.begin() + 1);
// 使用迭代器遍历元素
for (std::vector<int>::iterator it = vecInt.begin(); it != vecInt.end(); ++it) {
std::cout << *it << std::endl;
}
示例一
#include <iostream>
#include <vector>
int main()
{
// 初始化存储int类型的vector对象
std::vector<int> vecInt = {1, 2, 3};
// 添加元素4
vecInt.push_back(4);
// 删除尾部元素4
vecInt.pop_back();
// 在位置1插入元素5
vecInt.insert(vecInt.begin() + 1, 5);
// 修改位置1上的元素为6
vecInt[1] = 6;
// 查询位置1上的元素
int val = vecInt[1];
// 输出vector中所有元素
for (std::vector<int>::iterator it = vecInt.begin(); it != vecInt.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
输出结果:1 6 3
示例二
#include <iostream>
#include <vector>
#include <string>
int main()
{
// 初始化存储string类型的vector对象
std::vector<std::string> vecStr = {"hello", "world"};
// 使用迭代器遍历元素
for (std::vector<std::string>::iterator it = vecStr.begin(); it != vecStr.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
// 删除位置1上的元素
vecStr.erase(vecStr.begin() + 1);
// 在位置0插入元素"everyone"
vecStr.insert(vecStr.begin(), "everyone");
// 输出vector中所有元素
for (std::vector<std::string>::iterator it = vecStr.begin(); it != vecStr.end(); ++it) {
std::cout << *it << " ";
}
std::cout << std::endl;
return 0;
}
输出结果:hello everyone
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++之vector容器的的声明初始化和增删改查 - Python技术站