STL序列式容器array(含完整可执行代码)

传送门

  • 前言
  • array
      • 简要介绍
      • 构建array容器
      • 访问元素
      • 遍历
      • 常用成员函数
      • 可执行代码

前言

本篇文章是C++ STL学习专栏的第二篇文章,也是教程的起点,希望能够通过一篇文章介绍一些常用的使用方法,解决小白在使用STL的烦恼。本篇文章将会介绍序列式容器array。简单来说,在序列容器中,元素的位置同元素的值无关,即容器是不排序的的,元素在什么指定位置插入就会存放在什么位置。如果已经有C++编译环境的小伙伴也可以直接到文章底部复制代码(代码可以直接运行,并且会覆盖本文所有内容,同时有详细的注释),进行编译,对照着结果和注释学习,可以自己动手改改,这样学起来效果更好,同时本文如果有什么错漏大家可以在评论区留言。
希望了解其他内容的可以点击底部的传送门进入STL学习专栏,目前仍在更新中!

array

简要介绍

array即数组容器,一旦建立,其长度是固定的,也就意味着它不能增加或删除元素,只能够改变某个元素的值;

构建array容器

array容器定义在头文件中,构建一个array容器的方法是array name,其中,class是只数组中存的数据的数据类型,size是指构建的容器的大小,name则是构建容器对象的名字。

下面将展示构建一个数据类型为整型,而大小为5的array容器

#include
#include
using namespace std;
int main()
{
	array a;
	array b ={1,2,3,4,5};
	array c {1,2,3,4,5};
	array d = b;
	a.fill(1)//成员函数,将数组a的所有元素设置为1;
}

访问元素

array容器常用的访问方法主要有以下几种

  • 以下标形式访问
  • 使用at()访问,但相较于上一种方式,当i越界时,会给出std::out_of_range的报错。
  • 使用迭代器访问
  • 使用其它成员函数访问特定位置,如第一个或者最后一个元素
a[i] //以下标访问
a.at(i)//等价于a[i],

arr.begin();//返回指向第一个元素的迭代器
arr.end();//返回指向队尾元素下一个元素的迭代器
arr.rbegin(); //返回指向最后一个元素的迭代器
arr.rend();//返回指向第一个元素前一个元素的迭代器
//成员函数访问:
arr.front();//返回第一个元素
arr.back();//返回最后一个元素

遍历

//使用下标
for(int i=0; i < a.size(); i++)
{
	cout<

常用成员函数

成员函数 功能
begin() 返回指向容器中第一个元素的随机访问迭代器
end() 返回指向容器最后一个元素之后一个位置的随机访问迭代器,通常和 begin() 结合使用。
cbegin() 和 begin() 功能相同,只不过在其基础上增加了 const 属性,不能用于修改元素。
cend() 和 end() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
rbegin() 返回指向最后一个元素的随机访问迭代器。
rend() 返回指向第一个元素之前一个位置的随机访问迭代器。
crbegin() 返回指向最后一个元素的随机访问迭代器。
crend() 和 rend() 功能相同,只不过在其基础上,增加了 const 属性,不能用于修改元素。
size() 返回容器中当前元素的数量,其值始终等于初始化 array 类的第二个模板参数 N。
max_size() 返回容器可容纳元素的最大数量,其值始终等于初始化 array 类的第二个模板参数 N。
empty() 判断容器是否为空,和通过 size()==0 的判断条件功能相同,但其效率可能更快。
at(n) 返回容器中 n 位置处元素的引用,该函数自动检查 n 是否在有效的范围内,如果不是则抛出 out_of_range 异常。
front() 返回容器中第一个元素的直接引用,该函数不适用于空的 array 容器。
back() 返回容器中最后一个元素的直接引用,该函数同样不适用于空的 array 容器。
data() 返回一个指向容器首个元素的指针。利用该指针,可实现复制容器中所有元素等类似功能。
fill(val) 将 val 这个值赋值给容器中的每个元素。
array1.swap(array2) 交换 array1 和 array2 容器中的所有元素,但前提是它们具有相同的长度和类型。

可执行代码

下面展示一些 内联代码片


#include

#include 
#include


using namespace std;

void show(array &b)
{
	for(int i = 0; i< b.size();i++){
		cout< a;
	array b ={1,2,3,4,5};
	array c {1,2,3,4,5};
	array d = b;
	a.fill(1);//成员函数,将数组a的所有元素设置为1;
	
	//输出查看 
	cout << "构建array函数"< a; :";
	show(a);
	cout << setiosflags(ios::left)< b ={1,2,3,4,5};";
	show(b);
	cout << setiosflags(ios::left)< c {1,2,3,4,5};";
	show(c);
	cout << setiosflags(ios::left)< d = b;";
	show(d);

/********************************访问元素**************************************************/
	cout<

STL学习专栏传送门

你可能感兴趣的:(C++,STL学习整理,不收费的专栏!,c++,开发语言)