山东智趣岛论坛

 找回密码
 立即注册
查看: 189|回复: 0
打印 上一主题 下一主题

C++可变数组常用函数及功能

[复制链接]
8888888

103

主题

105

帖子

1019万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
10197582

最佳新人活跃会员热心会员推广达人宣传达人灌水之王突出贡献优秀版主论坛元老

跳转到指定楼层
楼主
发表于 2025-2-15 11:23:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[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)]







回复

使用道具 举报

QQ|山东智趣岛论坛 ( 鲁ICP备2023024048号 )

GMT+8, 2025-3-1 06:50 , Processed in 0.199656 second(s), 38 queries .

Powered by Discuz! X3.3 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表