📌  相关文章
📜  C++中的STD :: array(1)

📅  最后修改于: 2023-12-03 14:59:50.623000             🧑  作者: Mango

C++中的 std::array

在C++中,std::array是一个容器类,提供了固定大小、连续内存的数组。

特点
  • std::array在编译时期就固定了它的大小,因此它的大小是静态的。
  • std::array的元素在内存中是连续存储的,可以使用指针算术操作来访问和管理元素。
  • std::array提供了STL标准库的大部分容器操作函数,包括迭代器和算法。
  • std::array的大小可以通过size()函数获取,并且总是保持在编译期间已知。
声明和初始化

可以通过以下方式声明和初始化一个std::array

std::array<int, 5> myArray; // 创建一个包含5个int元素的std::array,默认初始化为0
std::array<int, 5> myArray = {1, 2, 3, 4, 5}; // 使用初始化列表进行初始化
std::array<int, 5> myArray = {1, 2}; // 剩余的元素将被初始化为0
std::array<int, 5> myArray = {1}; // 剩余的元素将被初始化为0
访问元素

可以使用下标运算符[]访问std::array中的元素,下标从0开始:

std::array<int, 5> myArray = {1, 2, 3, 4, 5};
int firstElement = myArray[0]; // 获取第一个元素
int lastElement = myArray[myArray.size() - 1]; // 获取最后一个元素
迭代器使用

std::array也提供了迭代器用于遍历元素:

std::array<int, 5> myArray = {1, 2, 3, 4, 5};
for (auto it = myArray.begin(); it != myArray.end(); ++it) {
    // 使用迭代器访问数组元素
    int element = *it;
    // 对元素进行处理
}
容器操作

std::array支持多种容器操作,如插入、删除等。以下是一些常见的操作函数:

  • size():返回std::array的大小。
  • empty():检查std::array是否为空。
  • at(index):返回指定索引位置的元素,并进行边界检查。
  • front():返回第一个元素。
  • back():返回最后一个元素。
  • fill(value):用指定值填充整个std::array
  • swap(other):交换两个std::array的内容。
示例代码
#include <array>
#include <iostream>

int main() {
    std::array<int, 5> myArray = {1, 2, 3, 4, 5};

    // 访问元素
    int firstElement = myArray[0];
    std::cout << "First element: " << firstElement << std::endl;

    // 迭代器使用
    for (auto it = myArray.begin(); it != myArray.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // 容器操作
    std::cout << "Size: " << myArray.size() << std::endl;
    std::cout << "Empty: " << (myArray.empty() ? "true" : "false") << std::endl;

    myArray.fill(0);
    for (auto element : myArray) {
        std::cout << element << " ";
    }
    std::cout << std::endl;

    return 0;
}

以上是对C++中的std::array的简要介绍。std::array提供了一种简单而灵活的方式来管理固定大小的连续内存数组。可以使用它来替代传统的C风格数组,并受益于STL标准库提供的各种强大的容器操作函数。