山东智趣岛论坛

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

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

[复制链接]
8888888

103

主题

105

帖子

1019万

积分

版主

Rank: 7Rank: 7Rank: 7

积分
10197582

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

跳转到指定楼层
楼主
发表于 2025-2-15 11:20:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[color=rgb(var(--ds-rgb-label-1))]
C++ 中的数组分为两种:静态数组(C 风格数组)和 动态数组(如 std::vector)。以下是静态数组的常用操作及其功能的表格,附带简单的案例说明:

静态数组(C 风格数组)常用操作
操作/函数名
功能描述
示例代码

数组声明
声明一个固定大小的数组int arr[5]; // 声明一个包含 5 个整数的数组
数组初始化
声明并初始化数组int arr[3] = {1, 2, 3}; // 声明并初始化数组
访问元素
通过索引访问数组元素int arr[3] = {1, 2, 3}; cout << arr[1]; // 输出 2
修改元素
通过索引修改数组元素int arr[3] = {1, 2, 3}; arr[1] = 10; // arr = {1, 10, 3}
数组遍历
使用循环遍历数组int arr[3] = {1, 2, 3}; for (int i = 0; i < 3; i++) cout << arr << " ";
数组大小
计算数组的大小(元素个数)int arr[3] = {1, 2, 3}; int size = sizeof(arr) / sizeof(arr[0]); // size = 3
数组作为参数传递
将数组传递给函数void printArray(int arr[], int size) { for (int i = 0; i < size; i++) cout << arr << " "; }
多维数组
声明和操作多维数组int matrix[2][3] = {{1, 2, 3}, {4, 5, 6}}; cout << matrix[1][2]; // 输出 6
数组指针
使用指针访问数组元素int arr[3] = {1, 2, 3}; int* ptr = arr; cout << *(ptr + 1); // 输出 2
数组填充
使用 std::fill 填充数组int arr[3]; std::fill(arr, arr + 3, 10); // arr = {10, 10, 10}
数组排序
使用 std::sort 对数组排序int arr[3] = {3, 1, 2}; std::sort(arr, arr + 3); // arr = {1, 2, 3}
数组查找
使用 std::find 查找元素int arr[3] = {1, 2, 3}; auto it = std::find(arr, arr + 3, 2); if (it != arr + 3) cout << "Found";
数组复制
使用 std::copy 复制数组int src[3] = {1, 2, 3}; int dest[3]; std::copy(src, src + 3, dest); // dest = {1, 2, 3}
动态数组(std::vector)常用操作
std::vector 是 C++ 标准库中的动态数组,提供了更丰富的功能。以下是常用操作:
操作/函数名
功能描述
示例代码

声明和初始化
声明并初始化 std::vectorstd::vector<int> vec = {1, 2, 3};
添加元素
使用 push_back 在末尾添加元素std::vector<int> vec; vec.push_back(10); // vec = {10}
删除元素
使用 pop_back 删除末尾元素std::vector<int> vec = {1, 2, 3}; vec.pop_back(); // vec = {1, 2}
访问元素
使用 [] 或 at 访问元素std::vector<int> vec = {1, 2, 3}; cout << vec[1]; // 输出 2
修改元素
使用 [] 或 at 修改元素std::vector<int> vec = {1, 2, 3}; vec[1] = 10; // vec = {1, 10, 3}
遍历数组
使用循环遍历 std::vectorfor (int i = 0; i < vec.size(); i++) cout << vec << " ";
数组大小
使用 size 获取元素个数std::vector<int> vec = {1, 2, 3}; cout << vec.size(); // 输出 3
清空数组
使用 clear 清空数组std::vector<int> vec = {1, 2, 3}; vec.clear(); // vec = {}
插入元素
使用 insert 在指定位置插入元素std::vector<int> vec = {1, 3}; vec.insert(vec.begin() + 1, 2); // vec = {1, 2, 3}
删除元素
使用 erase 删除指定位置的元素std::vector<int> vec = {1, 2, 3}; vec.erase(vec.begin() + 1); // vec = {1, 3}
排序数组
使用 std::sort 对数组排序std::vector<int> vec = {3, 1, 2}; std::sort(vec.begin(), vec.end()); // vec = {1, 2, 3}
查找元素
使用 std::find 查找元素std::vector<int> vec = {1, 2, 3}; auto it = std::find(vec.begin(), vec.end(), 2); if (it != vec.end()) cout << "Found";
示例代码(静态数组):cpp
[backcolor=rgba(var(--ds-rgba-transparent))]复制




#include <iostream>#include <algorithm> // for std::sort, std::fill, std::copyusing namespace std;int main() {    // 声明并初始化数组    int arr[5 = {5, 3, 1, 4, 2};    // 访问元素    cout << "Element at index 2: " << arr[2 << endl; // 输出 1    // 修改元素    arr[2 = 10;    cout << "Modified element at index 2: " << arr[2 << endl; // 输出 10    // 遍历数组    cout << "Array elements: ";    for (int i = 0; i < 5; i++) {        cout << arr[i << " ";    }    cout << endl;    // 数组排序    std::sort(arr, arr + 5);    cout << "Sorted array: ";    for (int i = 0; i < 5; i++) {        cout << arr[i << " ";    }    cout << endl;    // 数组填充    std::fill(arr, arr + 5, 7);    cout << "Filled array: ";    for (int i = 0; i < 5; i++) {        cout << arr[i << " ";    }    cout << endl;    return 0;}

示例代码(动态数组):cpp
[backcolor=rgba(var(--ds-rgba-transparent))]复制




#include <iostream>#include <vector>#include <algorithm> // for std::sort, std::findusing namespace std;int main() {    // 声明并初始化 vector    vector<int> vec = {5, 3, 1, 4, 2};    // 添加元素    vec.push_back(6);    cout << "After push_back: ";    for (int i : vec) cout << i << " ";    cout << endl;    // 删除元素    vec.pop_back();    cout << "After pop_back: ";    for (int i : vec) cout << i << " ";    cout << endl;    // 排序    std::sort(vec.begin(), vec.end());    cout << "Sorted vector: ";    for (int i : vec) cout << i << " ";    cout << endl;    // 查找元素    auto it = std::find(vec.begin(), vec.end(), 3);    if (it != vec.end()) {        cout << "Element 3 found at index: " << it - vec.begin() << endl;    }    return 0;}

输出结果(静态数组):
[backcolor=rgba(var(--ds-rgba-transparent))]复制




Element at index 2: 1Modified element at index 2: 10Array elements: 5 3 10 4 2 Sorted array: 2 3 4 5 10 Filled array: 7 7 7 7 7
输出结果(动态数组):
[backcolor=rgba(var(--ds-rgba-transparent))]复制




After push_back: 5 3 1 4 2 6 After pop_back: 5 3 1 4 2 Sorted vector: 1 2 3 4 5 Element 3 found at index:


[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)]






[backcolor=rgb(var(--ds-rgb-blue-100))]


回复

使用道具 举报

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

GMT+8, 2025-3-1 07:22 , Processed in 0.181929 second(s), 37 queries .

Powered by Discuz! X3.3 Licensed

Copyright © 2001-2020, Tencent Cloud.

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