使用vector进行数组动态处理

在C++中,vector是标准模板库(STL)中的容器类,提供了动态数组的功能。它在内存中连续存储元素,并为访问、插入和删除元素提供了高效的操作。

vector的头文件是<vector>,使用时需要包含该头文件。

以下介绍一些vector的常用操作和特点:

1. 定义和初始化:

vector<int> vec; // 定义一个空的int类型的vector
vector<int> vec(5); // 定义一个包含5个元素的int类型的vector,每个元素都被默认初始化为0
vector<int> vec = {
    
    1, 2, 3, 4, 5}; // 使用初始化列表定义vector,并赋予初值

2. 访问元素:

int value = vec[0]; // 通过下标访问元素,注意不做范围检查
int value = vec.at(0); // 通过at()函数访问元素,进行范围检查,超出范围会抛出异常
int value = vec.front(); // 获取第一个元素
int value = vec.back(); // 获取最后一个元素

3. 插入和删除元素:

vec.push_back(10); // 在尾部插入一个元素
vec.pop_back(); // 移除尾部的元素
vec.insert(vec.begin() + 2, 20); // 在指定位置插入一个元素
vec.erase(vec.begin() + 1); // 移除指定位置的元素

4. 容量相关:

bool isEmpty = vec.empty(); // 判断vector是否为空
int size = vec.size(); // 返回vector中元素的个数
int capacity = vec.capacity(); // 返回vector当前可容纳的元素个数
vec.reserve(100); // 将vector的容量设置为至少能容纳100个元素,可以避免不必要的内存重新分配
vec.resize(10); // 将vector的大小调整为10,多余的元素会被删除或者使用默认值填充

5. 遍历:

for (int i = 0; i < vec.size(); ++i) {
    
    
    cout << vec[i] << " ";
}
cout << endl;

for (auto it = vec.begin(); it != vec.end(); ++it) {
    
    
    cout << *it << " ";
}
cout << endl;

for (int value : vec) {
    
    
    cout << value << " ";
}
cout << endl;

vector提供了灵活的动态数组功能,可以方便地增加、删除和访问元素。初始化、插入和删除操作的时间复杂度均为O(1),通过下标随机访问元素的时间复杂度也是O(1)。因此,在大多数情况下,使用vector是一种高效且方便的选择。

猜你喜欢

转载自blog.csdn.net/weixin_75094128/article/details/131537430