网站开发上证k线,行业网站开发管理软件,犀牛云做网站如何,集成电路行业人才c array使用笔记 1. 构造2. 成员类型3. 元素访问4. 容量相关5. 填充与交换6. 比较操作7. 迭代器总结 array 是 C 标准库中的一个容器模板#xff0c;它封装了一个固定长度的内建数组#xff0c;并提供了类似于其他 STL 容器的接口。与内建数组相比#xff0c;
array 提供了… c array使用笔记 1. 构造2. 成员类型3. 元素访问4. 容量相关5. 填充与交换6. 比较操作7. 迭代器总结 array 是 C 标准库中的一个容器模板它封装了一个固定长度的内建数组并提供了类似于其他 STL 容器的接口。与内建数组相比
array 提供了更多的操作如复制、比较、交换等。以下是
array 容器的主要接口及其功能的简要介绍 1. 构造
默认构造函数创建一个空的 array 对象。初始化列表构造函数允许使用初始化列表来初始化 array 中的元素。
std::arrayint, 3 arr1; // 默认构造元素未初始化
std::arrayint, 3 arr2 {1, 2, 3}; // 使用初始化列表构造2. 成员类型
value_typearray 中元素的类型。size_type表示 array 大小的无符号整数类型。iterator 和 const_iterator用于遍历 array 的迭代器类型。reference 和 const_reference元素的引用类型。
std::arrayint, 3::value_type x 10; // x 的类型是 int3. 元素访问
operator[]通过下标访问元素不进行边界检查。at()通过下标访问元素进行边界检查如果越界则抛出 std::out_of_range 异常。front()访问第一个元素。back()访问最后一个元素。data()返回指向底层数组的指针。
std::arrayint, 3 arr {1, 2, 3};
int x arr[0]; // 访问第一个元素
int y arr.at(1); // 访问第二个元素带边界检查
int z arr.front(); // 访问第一个元素
int w arr.back(); // 访问最后一个元素
int* p arr.data(); // 获取底层数组的指针4. 容量相关
empty()检查 array 是否为空对于 array只有在大小为 0 时才为空。size()返回 array 中元素的数量。max_size()返回 array 可以容纳的最大元素数量对于 arraysize() 和 max_size() 通常相同。
std::arrayint, 3 arr {1, 2, 3};
bool isEmpty arr.empty(); // false
std::size_t size arr.size(); // 3
std::size_t maxSize arr.max_size(); // 35. 填充与交换
fill(value)将 array 中的所有元素设置为指定的值。swap(other)交换两个 array 的内容。
std::arrayint, 3 arr1 {1, 2, 3};
std::arrayint, 3 arr2 {4, 5, 6};
arr1.fill(0); // arr1 变为 {0, 0, 0}
arr1.swap(arr2); // arr1 变为 {4, 5, 6}, arr2 变为 {0, 0, 0}6. 比较操作
operatorC20 引入用于比较两个 array 对象的元素。返回一个比较结果可以是 std::strong_ordering、std::weak_ordering 或 std::partial_ordering。
std::arrayint, 3 arr1 {1, 2, 3};
std::arrayint, 3 arr2 {1, 2, 4};
auto result (arr1 arr2); // 返回 std::strong_ordering::less7. 迭代器
begin() 和 end()返回指向 array 第一个元素和最后一个元素之后位置的迭代器。cbegin() 和 cend()返回指向 array 第一个元素和最后一个元素之后位置的常量迭代器。rbegin() 和 rend()返回指向 array 最后一个元素和第一个元素之前位置的逆向迭代器。crbegin() 和 crend()返回指向 array 最后一个元素和第一个元素之前位置的常量逆向迭代器。
std::arrayint, 3 arr {1, 2, 3};
for (auto it arr.begin(); it ! arr.end(); it) {std::cout *it ; // 输出 1 2 3
}总结
array 是一个固定大小的容器提供了类似于内建数组的功能但增加了更多的操作和安全性如边界检查。它适用于需要固定大小数组且希望使用 STL 风格的接口的场景。