自学内容网 自学内容网

C++容器之array

C++ array容器

特点

array是固定大小数组。

C++中,array是一个模板类,提供了数组的功能,在许多方面比原始的 C 风格数组更为强大和灵活。

主要特点

  1. 固定大小: std::array 的大小在编译时确定,运行时无法修改。
  2. 包含全部 STL 功能: std::array 支持 STL 的所有算法和迭代器。
  3. 直接存储元素: 元素直接存储在 std::array 对象内部,而非动态分配内存。
  4. 支持范围 for 循环: 方便的与范围 for 循环结合使用。
  5. 成员函数和属性: 提供许多成员函数,例如 size()、fill() 和 swap() 等。

第1/2段示例代码

简单常用API

// CMake_LeetCodeHot100.cpp: 定义应用程序的入口点。
//

#include "CMake_LeetCodeHot100.h"
#include <vector>
#include <iostream>
#include <algorithm>

#include <array>
#include <iostream>
#include <ctime>
#include <stdlib.h>
using namespace std;

#define ASIZE 100000

void test_array() {

cout << "\ntest_array()...\n";

array<int, ASIZE> a;

clock_t timeStart = clock();// 开始时间

for (int i = 0; i < ASIZE; i++) {
a[i] = i;
}
cout << "milli-seconds:" << (clock() - timeStart) << endl;
// 输出数组大小
cout << "array.size():" << a.size()<<endl;
// 输出数组第一个元素
cout << "array.front():" << a.front() << endl;
// 输出数组最后一个元素
cout << "array.back():" << a.back()<<endl;
// 输出数组中第一个元素的地址,可用于一块区域整体赋值
cout << "array.data():" << a.data() << endl;
}


int main()
{
test_array();
    
getchar();
return 0;
}

在这里插入图片描述

第2/2段代码

另外一段参考代码:

// CMake_LeetCodeHot100.cpp: 定义应用程序的入口点。
//

#include "CMake_LeetCodeHot100.h"
#include <iostream>
#include <algorithm>
#include <array>

using namespace std;

#define ASIZE 100000

int main()
{
    // 声明一个包含 5 个整数的 array
    std::array<int, 5> arr = { 1, 2, 3, 4, 5 };

    // 输出 array 的大小
    std::cout << "arr size: " << arr.size() << std::endl;

    // 使用范围 for 循环输出元素
    std::cout << "Elements in arr: ";
    for (const auto& element : arr) {
        std::cout << element << " ";
    }
    std::cout << std::endl;

    // 使用 std::fill 填充 array
    arr.fill(10);
    std::cout << "After fill: ";
    for (const auto& element : arr) {
        std::cout << element << " ";
    }
    std::cout << std::endl;

    // 交换两个 array
    std::array<int, 5> arr2 = { 5, 4, 3, 2, 1 };
    arr.swap(arr2);
    std::cout << "After swap: ";
    for (const auto& element : arr) {
        std::cout << element << " ";
    }
    std::cout << std::endl;

    // 使用 std::sort 对 array 进行排序
    std::sort(arr.begin(), arr.end());
    std::cout << "After sort: ";
    for (const auto& element : arr) {
        std::cout << element << " ";
    }
    std::cout << std::endl;

    
getchar();
return 0;
}

在这里插入图片描述


原文地址:https://blog.csdn.net/weixin_44417441/article/details/140561437

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!