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