C++ -- Array 学习

在 C++ 中,std::array 是标准库提供的一个容器,用于存储固定大小的元素序列。它具有以下特点:

  1. 固定大小std::array 的大小在创建时就被确定,并且不能改变。因此,它适用于需要静态大小的情况。

  2. 连续存储std::array 中的元素是连续存储的,因此可以通过索引快速访问元素。

  3. 支持迭代器std::array 支持使用迭代器进行元素的遍历和操作。

下面是 std::array 的一些常见用法和函数:

创建 std::array

#include <array>

std::array<int, 5> arr; // 创建一个包含5个整数的数组 
std::array<double, 3> arr2 = {1.1, 2.2, 3.3}; // 创建并初始化数组

访问元素:

std::array<int, 3> arr = {10, 20, 30}; 
int x = arr[0]; // 访问第一个元素 
int y = arr.at(1); // 访问第二个元素,
at() 函数提供了越界检查

获取大小:

std::array<int, 4> arr = {1, 2, 3, 4}; 
int size = arr.size(); // 获取数组大小,结果为4

迭代器:

std::array<int, 3> arr = {10, 20, 30}; 

// 遍历 : 
for(auto it = arr.begin(); it != arr.end(); ++it) {
     std::cout << *it << " "; // 输出数组元素 
}

填充数组:

std::array<int, 5> arr; 
arr.fill(0); // 将数组所有元素填充为0

数组比较:

std::array<int, 3> arr1 = {1, 2, 3}; 
std::array<int, 3> arr2 = {1, 2, 3}; 
if(arr1 == arr2) { 
    std::cout << "Arrays are equal" << std::endl; 
}

其他常见操作:

  • arr.front():返回第一个元素的引用。
  • arr.back():返回最后一个元素的引用。
  • arr.empty():检查数组是否为空。
  • arr.swap(other):交换两个数组的内容。

总的来说,std::array 提供了一个类似于原始数组但更安全、更易于使用的替代品,特别适用于需要静态大小和高效访问的情况。

相关推荐

  1. C++ -- Array 学习

    2024-05-02 16:58:33       13 阅读
  2. LeetCode //C - 1146. Snapshot Array

    2024-05-02 16:58:33       16 阅读
  3. Arrays

    2024-05-02 16:58:33       13 阅读
  4. Arrays

    2024-05-02 16:58:33       10 阅读
  5. C#基础——数组Array、数组API

    2024-05-02 16:58:33       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-02 16:58:33       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-02 16:58:33       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-02 16:58:33       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-02 16:58:33       20 阅读

热门阅读

  1. C++ 类对象初始化

    2024-05-02 16:58:33       9 阅读
  2. SQL中为什么不要使用1=1?

    2024-05-02 16:58:33       12 阅读
  3. 知识图谱与大语言模型的协同(RAG)——MindMap

    2024-05-02 16:58:33       12 阅读
  4. 23种设计模式

    2024-05-02 16:58:33       11 阅读
  5. 速盾:高防cdn-为您的网站防御cc/ddos

    2024-05-02 16:58:33       12 阅读
  6. tomca打不开index.html的解决方案

    2024-05-02 16:58:33       11 阅读
  7. 【LeetCode刷题记录】简单篇-88-合并两个有序数组

    2024-05-02 16:58:33       10 阅读
  8. H2数据库常见问题

    2024-05-02 16:58:33       15 阅读
  9. Acwing 818. 数组排序

    2024-05-02 16:58:33       11 阅读
  10. 共享模型之不可变——不可变设计、享元模式

    2024-05-02 16:58:33       12 阅读
  11. flutter 开发实战常用

    2024-05-02 16:58:33       9 阅读
  12. 常见大模型框架

    2024-05-02 16:58:33       11 阅读