[color=rgb(var(--ds-rgb-label-1))] 以下是C++中常用的可变数组(std::vector)函数及其功能的表格,附带简单的案例说明: 函数名 功能描述 示例代码
push_back() 在数组末尾添加一个元素vector<int> vec = {1, 2}; vec.push_back(3); // vec = {1, 2, 3}
pop_back() 删除数组末尾的元素vector<int> vec = {1, 2, 3}; vec.pop_back(); // vec = {1, 2}
size() 返回数组中元素的个数vector<int> vec = {1, 2, 3}; cout << vec.size(); // 输出 3
empty() 检查数组是否为空,返回布尔值vector<int> vec = {}; cout << vec.empty(); // 输出 1 (true)
clear() 清空数组中的所有元素vector<int> vec = {1, 2, 3}; vec.clear(); // vec = {}
insert() 在指定位置插入一个或多个元素vector<int> vec = {1, 3}; vec.insert(vec.begin() + 1, 2); // vec = {1, 2, 3}
erase() 删除指定位置或范围的元素vector<int> vec = {1, 2, 3}; vec.erase(vec.begin() + 1); // vec = {1, 3}
at() 返回指定位置的元素,提供边界检查vector<int> vec = {1, 2, 3}; cout << vec.at(1); // 输出 2
operator[] 返回指定位置的元素,不提供边界检查vector<int> vec = {1, 2, 3}; cout << vec[1]; // 输出 2
front() 返回数组的第一个元素vector<int> vec = {1, 2, 3}; cout << vec.front(); // 输出 1
back() 返回数组的最后一个元素vector<int> vec = {1, 2, 3}; cout << vec.back(); // 输出 3
begin() 返回指向数组第一个元素的迭代器vector<int> vec = {1, 2, 3}; auto it = vec.begin(); cout << *it; // 输出 1
end() 返回指向数组末尾(最后一个元素之后)的迭代器vector<int> vec = {1, 2, 3}; auto it = vec.end(); cout << *(it - 1); // 输出 3
rbegin() 返回指向数组最后一个元素的反向迭代器vector<int> vec = {1, 2, 3}; auto it = vec.rbegin(); cout << *it; // 输出 3
rend() 返回指向数组开头(第一个元素之前)的反向迭代器vector<int> vec = {1, 2, 3}; auto it = vec.rend(); cout << *(it - 1); // 输出 1
resize() 调整数组的大小,可以截断或填充默认值vector<int> vec = {1, 2}; vec.resize(4, 0); // vec = {1, 2, 0, 0}
reserve() 预分配数组的容量,避免频繁重新分配内存vector<int> vec; vec.reserve(10); cout << vec.capacity(); // 输出 10
capacity() 返回数组当前分配的容量大小vector<int> vec; vec.reserve(10); cout << vec.capacity(); // 输出 10
shrink_to_fit() 将数组的容量缩减到与当前元素数量匹配vector<int> vec = {1, 2, 3}; vec.shrink_to_fit(); cout << vec.capacity(); // 输出 3
swap() 交换两个数组的内容vector<int> vec1 = {1, 2}; vector<int> vec2 = {3, 4}; vec1.swap(vec2); // vec1 = {3, 4}, vec2 = {1, 2}
assign() 用指定值替换数组的内容vector<int> vec; vec.assign(3, 10); // vec = {10, 10, 10}
emplace() 在指定位置构造并插入一个元素(避免额外的拷贝或移动操作)vector<int> vec = {1, 3}; vec.emplace(vec.begin() + 1, 2); // vec = {1, 2, 3}
emplace_back() 在数组末尾构造并插入一个元素(避免额外的拷贝或移动操作)vector<int> vec = {1, 2}; vec.emplace_back(3); // vec = {1, 2, 3}示例代码:cpp
[backcolor=rgba(var(--ds-rgba-transparent))]复制
#include <iostream>#include <vector>using namespace std;int main() { // 创建一个vector并初始化 vector<int> vec = {1, 2, 3}; // 使用push_back添加元素 vec.push_back(4); // vec = {1, 2, 3, 4} // 使用pop_back删除最后一个元素 vec.pop_back(); // vec = {1, 2, 3} // 使用insert在指定位置插入元素 vec.insert(vec.begin() + 1, 5); // vec = {1, 5, 2, 3} // 使用erase删除指定位置的元素 vec.erase(vec.begin() + 2); // vec = {1, 5, 3} // 使用at访问元素 cout << "Element at index 1: " << vec.at(1) << endl; // 输出 5 // 使用size获取元素数量 cout << "Size of vector: " << vec.size() << endl; // 输出 3 // 使用clear清空vector vec.clear(); // vec = {} // 检查是否为空 if (vec.empty()) { cout << "Vector is empty!" << endl; } return 0;}
这些函数是C++标准库中std::vector类的一部分,提供了丰富的动态数组操作功能。
[color=var(--ds-icon-button-text-color)]
[color=var(--ds-icon-button-text-color)]
[color=var(--ds-icon-button-text-color)]
[color=var(--ds-icon-button-text-color)]
|