📜  C++ STL 中的向量集与示例(1)

📅  最后修改于: 2023-12-03 15:13:55.028000             🧑  作者: Mango

C++ STL 中的向量集与示例

在C++ STL中,向量集(vector)是一个非常有用且经常使用的容器,它类似于数组,但有更多的功能和优势。

向量集的简介

向量集是一个动态数组,意味着它可以在运行时按需增加或减少数组的大小。这使得它比固定大小的数组更灵活,因为在编写代码时可以不必关心数组的大小。

除了允许在运行时调整大小之外,向量还提供了一系列有用的功能,例如在常量时间内随机访问元素,以及在数组的末尾添加元素的能力。

在C++中,需要包含头文件vector才能使用向量集。要声明一直向量集,可以使用以下语法:

std::vector<int> vec;

这将创建具有整数类型的空向量集。

向量集的使用示例
基本操作

向vector中添加元素

std::vector<int> v; // 声明一个空向量

v.push_back(10); // 在末尾添加一个元素 
v.push_back(20); // 在末尾添加另一个元素 
v.push_back(30); // 在末尾添加第三个元素 
v.push_back(40); // 在末尾添加第四个元素 

访问和修改向量集中的元素

std::vector<int> v = {10, 20, 30, 40, 50};

// 访问
std::cout << v[0] << std::endl; // 输出 10
std::cout << v.at(1) << std::endl; // 输出 20
std::cout << v.front() << std::endl; // 输出 10
std::cout << v.back() << std::endl; // 输出 50

// 修改
v[2] = 100; // 把第三个元素修改为100

通过循环遍历向量中的元素

std::vector<int> v = {10, 20, 30, 40, 50};

for (int i = 0; i < v.size(); ++i) {
    std::cout << v[i] << " ";
}
// 输出 10 20 30 40 50
其他函数

获取向量的大小和容量

std::vector<int> v = {10, 20, 30, 40, 50};

std::cout << v.size() << std::endl; // 输出 5
std::cout << v.capacity() << std::endl; // 输出 8

在向量的末尾添加元素

std::vector<int> v = {10, 20, 30};

v.emplace_back(40);
v.emplace_back(50);

// 与下面代码等效
// v.push_back(40);
// v.push_back(50);

从向量中删除元素

std::vector<int> v = {10, 20, 30, 40, 50};

v.erase(v.begin() + 2); // 删除第3个元素,即30

// 删除从第2个元素到第4个元素(不包括第4个元素)
v.erase(v.begin() + 1, v.begin() + 4);
总结

向量集是STL中最常见和最有用的容器之一,它可以在运行时动态调整大小,并具有许多有用的功能和操作。熟练掌握向量集的使用可以极大地提高程序员的编程效率。