std::array

饭宝  论坛元老 | 2025-1-13 13:27:08 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1036|帖子 1036|积分 3108

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
std::array 是 C++ 尺度库中的一个容器,定义在 <array> 头文件中。它是一个固定大小的数组容器,封装了 C 风格数组,并提供了更多的功能和安全性。与 C 风格数组相比,std::array 具有以下优点:
(1)安全性:提供了越界查抄(通过 at() 方法)。
(2)功能性:支持迭代器、STL 算法和其他容器操作。
(3)同等性:与 STL 容器接口同等,易于利用。
(1)固定大小:std::array 的大小在编译时确定,不能在运行时动态调整。
(2)连续存储:元素在内存中是连续存储的,类似于 C 风格数组。
(3)值语义:std::array 是值范例,支持拷贝和赋值操作。
  1. template< class T, std::size_t N >
  2. struct array;
复制代码
T:元素的范例。
N:数组的大小(元素的数量)。
  1. #include <array>
  2. #include <iostream>
  3. int main() {
  4.     // 创建一个包含 5 个 int 元素的 std::array
  5.     std::array<int, 5> arr = {1, 2, 3, 4, 5};
  6.     // 使用范围 for 循环遍历
  7.     for (int i : arr) {
  8.         std::cout << i << " "; // 输出: 1 2 3 4 5
  9.     }
  10.     return 0;
  11. }
复制代码
  1. std::array<int, 3> arr = {10, 20, 30};
  2. std::cout << arr[1]; // 输出: 20
复制代码
  1. std::cout << arr.at(1); // 输出: 20
复制代码
  1. std::cout << arr.front(); // 输出: 10
  2. std::cout << arr.back();  // 输出: 30
复制代码
  1. std::cout << arr.size(); // 输出: 3
复制代码
  1. std::cout << arr.max_size(); // 输出: 3
复制代码
  1. std::array<int, 3> arr = {10, 20, 30};
  2. // 使用迭代器遍历
  3. for (auto it = arr.begin(); it != arr.end(); ++it) {
  4.     std::cout << *it << " "; // 输出: 10 20 30
  5. }
  6. // 使用反向迭代器
  7. for (auto it = arr.rbegin(); it != arr.rend(); ++it) {
  8.     std::cout << *it << " "; // 输出: 30 20 10
  9. }
复制代码
  1. std::array<int, 5> arr;
  2. arr.fill(42); // 将所有元素设置为 42
  3. for (int i : arr) {
  4.     std::cout << i << " "; // 输出: 42 42 42 42 42
  5. }
复制代码
  1. std::array<int, 3> arr1 = {1, 2, 3};
  2. std::array<int, 3> arr2 = {1, 2, 4};
  3. if (arr1 < arr2) {
  4.     std::cout << "arr1 is less than arr2"; // 输出: arr1 is less than arr2
  5. }
复制代码
  1. template<class T, std::size_t N>
  2. struct array {
  3.     T _M_elems[N]; // 底层 C 风格数组
  4.     // 其他成员函数(如 begin(), end(), size(), at() 等)
  5. };
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

饭宝

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表