STL之容器:array

        array是 C++ 标准库提供的一种容器,它表示一个固定大小的数组。与 C 语言中的原始数组相比, array提供了更多的功能和安全性。以下是一些 array的特点和用法:

  1. 固定大小: array的大小是在编译时确定的,并且不能改变。它提供了静态的大小信息,可以通过sie()成员函数获取元素的数量。

  2. 安全访问: array提供了at()成员函数进行边界检查,确保访问元素时不会越界。与使用原始数组的 [] 操作符相比at()更安全,但也会引入一些开销。

  3. 迭代器支持: array支持正向迭代器和常量正向迭代器,可以使用迭代器遍历容器中的元素。

  4. 元素访问:可以使用[] 运算符或at() 成员函数通过索引访问元素。还可以使用front()和back()成员函数分别获取第一个元素和最后一个元素。

  5. 值填充: array提供了fill()成员函数,可以将容器中的所有元素设置为指定的值。

  6. 初始化和赋值:可以通过列表初始化或使用 = 运算符进行初始化和赋值。

一.使用前准备工作:

#include<array>  //包含 <array> 头文件,以便在代码中使用array容器的功能。

using namespace std;  
//命名空间声明,使得代码中的标识符不需要加上 std:: 前缀来使用 std 命名空间中的内容,包括 //std::array在内。

array<int,5> arr;
//定义了一个名为 arr 的变量,并确定其有5个元素,这行代码创建了一个空的arr 对象,可以在后续的代码中添加、删除和访问元素。

arr = {1, 2, 3, 4, 5}; //为数组容器array添加元素,这里的12345是数组从头到尾每个结点所对应存储的数据

二.常用vector类的成员函数:

1

arr.size()返回返回容器arr中的元素个数的个数
2arr.fill(element)可用于初始化时,将arr所有元素均填充为指定的element
3arr.at()返回指定位置的元素的引用,并进行边界检查,越界报错
4arr[index]运算符通过索引访问容器中的元素,不进行边界检查:
5arr.front() 函数返回容器的第一个元素
6arr.back() 函数返回容器的最后一个元素
7arr.size()函数返回容器中的元素个数:
8arr.max_size()返回容器可以容纳的最大元素数
9arr.begin()返回指向容器第一个元素的迭代器。
10arr.end()返回指向容器最后一个元素的后面一个位置的迭代器。

三.代码示例:

1.size():

// 初始化数组arr
array<int, 5> arr = {1, 2, 3, 4, 5};

int arr_size = arr.size();
printf("数组arr元素数量:%d\n", arr_size);

//输出:
数组arr元素数量:5

2.fill():

// 定义数组arr
array<int, 5> arr;

// 将数组所有元素填充为 1
arr.fill(1);

printf("数组arr元素:\n");
for (int i = 0; i < arr.size(); i++)
{
    auto it = arr.begin() + i;
    printf("%d ", *it);
}

//输出:
数组arr元素:
1 1 1 1 1

3.at():

// 定义并初始化数组arr
array<int, 5> arr = {1, 2, 3, 4, 5};

printf("数组arr元素:\n");
for (int i = 0; i < arr.size(); i++)
{
    printf("第%d个元素:%d \n", i + 1, arr.at(i));
}

//输出:
数组arr元素:
第1个元素:1
第2个元素:2
第3个元素:3
第4个元素:4
第5个元素:5

4.front()和把back():

// 定义并初始化数组arr
array<int, 5> arr = {1, 2, 3, 4, 5};
int a = arr.front();
printf("数组arr第一个元素:%d\n", a);

int a = arr.back();
printf("数组arr最后一个元素:%d\n", b);


//输出:
数组arr第一个元素:1
数组arr最后一个元素:5

5.max_size():

// 定义并初始化数组arr
array<int, 5> arr = {1, 2, 3, 4, 5};
int capacity = arr.max_size();
printf("数组arr的最大容量:%d\n", capacity);

//输出:
数组arr的最大容量:5

6.begin()和end():

// 定义并初始化数组arr
array<int, 5> arr = {1, 2, 3, 4, 5};

auto it = arr.begin();
printf("数组arr第一个元素为:%d\n", *it);

auto it1 = arr.end() - 1;
printf("数组arr最后一个元素为:%d\n", *it1);

//输出:
数组arr第一个元素为:1
数组arr最后一个元素为:5

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Yuga...

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值