首页 经验

std::vector

时间: 2024-10-20 08:56:08

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)


std::vector 是 C++ 标准库中的一个动态数组容器,它提供了一个可变大小的数组,可以存储任意类型的对象。std::vector 是一个非常灵活且高效的选择,当你需要一个可以动态增加或减少大小的数组时,它是最常用的容器之一。以下是有关 std::vector 的一些要点以及常用操作的示例。


基本特性


1. 动态大小:与静态数组不同,std::vector 可以在运行时动态调整大小。

2. 随机访问:支持快速随机访问元素,使用 operator[]at() 方法。

3. 内存管理:自动管理内存分配与释放,避免内存泄漏。

4. 支持迭代器:可以使用迭代器遍历元素,与 STL 兼容。


常用操作


1. 包含头文件


在使用 std::vector 前,需要包含头文件:


cpp

#include <vector>


2. 创建和初始化


cpp

std::vector<int> vec1; // 创建一个空的整数 vector

std::vector<int> vec2(10); // 创建一个包含 10 个默认初始化元素的 vector

std::vector<int> vec3(10, 5); // 创建一个包含 10 个值为 5 的元素的 vector

std::vector<int> vec4 = {1, 2, 3, 4, 5}; // 使用初始化列表初始化


3. 添加和删除元素


cpp

vec1.push_back(1); // 在末尾添加元素

vec1.push_back(2);

vec1.push_back(3);


vec1.pop_back(); // 删除末尾元素


vec1.insert(vec1.begin() + 1, 10); // 在指定位置插入元素


vec1.erase(vec1.begin() + 1); // 删除指定位置的元素


vec1.clear(); // 清空 vector,删除所有元素


4. 访问元素


cpp

int first = vec4[0]; // 使用 operator[] 访问元素

int second = vec4.at(1); // 使用 at() 访问元素,提供边界检查


if (!vec4.empty()) { // 检查 vector 是否为空

    int size = vec4.size(); // 获取当前元素数量

}


5. 遍历元素


cpp

for (size_t i = 0; i < vec4.size(); ++i) {

    std::cout << vec4[i] << " "; // 使用下标访问

}


for (auto& element : vec4) {

    std::cout << element << " "; // 使用范围 for 循环

}


// 使用迭代器

for (std::vector<int>::iterator it = vec4.begin(); it != vec4.end(); ++it) {

    std::cout << *it << " ";

}


6. 其他有用的方法


cpp

size_t size = vec4.size(); // 获取大小

size_t capacity = vec4.capacity(); // 获取当前容量

vec4.resize(20); // 改变大小,如果新大小大于当前大小则填充默认值

vec4.reserve(50); // 提前分配内存以避免多次内存分配

vec4.shrink_to_fit(); // 减少容量以适应当前大小


注意事项


- 由于 std::vector 在添加新元素时可能会重新分配内存,因此在已知元素数量时,使用 reserve() 可以提高性能。

- 使用 at() 方法能提供边界检查,而使用 [] 操作符则无法提供边界检查。


总结


std::vector 是 C++ 中最常用的容器之一,适合存储动态大小的数据集合。它支持快速访问、插入和删除操作,是实现许多数据结构和算法的基础。理解并灵活运用 std::vector 是 C++ 开发中的重要技能。


上一个 前端面试题 文章列表 下一个 git merge

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号