vector
是 C++ 标准库中常用的动态数组容器,属于 STL(标准模板库)的一部分。它在程序运行时可以动态调整大小,适合需要频繁增删元素的场景。下面是一些 vector
的基本特性和常用函数方法:
基本特性
- 动态大小:可以根据需要自动调整大小。
- 连续内存:元素存储在连续的内存空间中,支持随机访问。
- 支持泛型:可以存储任何类型的对象,包括基本数据类型和用户自定义类型。
常用函数方法
-
构造函数
std::vector<T> vec; // 默认构造 std::vector<T> vec(n); // 初始化 n 个元素,默认值 std::vector<T> vec(n, value); // 初始化 n 个元素,值为 value std::vector<T> vec(begin, end); // 用范围初始化
-
基本操作
vec.size()
:返回当前元素的数量。vec.capacity()
:返回当前分配的存储空间大小。vec.empty()
:检查vector
是否为空。
-
元素访问
vec[index]
:使用下标访问元素(不检查越界)。vec.at(index)
:安全地访问元素(会检查越界)。vec.front()
:返回第一个元素。vec.back()
:返回最后一个元素。
-
添加元素
vec.push_back(value)
:在末尾添加一个新元素。vec.pop_back()
:删除末尾元素。
-
插入和删除
vec.insert(position, value)
:在指定位置插入元素。vec.erase(position)
:删除指定位置的元素。vec.clear()
:清空vector
中的所有元素。
-
修改和交换
vec.assign(n, value)
:用 n 个 value 替换当前元素。vec.swap(other_vector)
:交换两个vector
的内容。vec.resize(new_size)
:调整大小,增加或减少元素。
-
空间管理
vec.reserve(n)
:预留至少 n 个元素的存储空间,以提高性能。vec.shrink_to_fit()
:减少容量以适应当前大小。
例子
#include <iostream>
#include <vector>
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5};
vec.push_back(6); // 添加元素
vec.pop_back(); // 删除最后一个元素
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << " "; // 访问元素
}
std::cout << "\nFront: " << vec.front(); // 访问第一个元素
std::cout << "\nBack: " << vec.back(); // 访问最后一个元素
return 0;
}
总结
vector
是一个非常强大且灵活的容器,适用于大多数需要动态数组功能的场景。无论是存储基本数据类型还是自定义对象,C++ 的 vector
都能提供高效、方便的解决方案!