概述
概述
C++的array是一种具有固定大小的容器类,与内置数组特点相似(随机访问、大小固定等),可以说这是C++风格的数组,T[]是C风格的数组。
不像C风格数组,array无法自动转换为array*。由于array大小固定,因此不支持普通的容器构造函数,这些构造函数都会确定容器的大小,要目隐式地,要么显式地。array的构造函数需要指定大小,因为大小也是其类型的一部分。内置数组无法做到的是,两个array对象之间可以赋值,只要两个对象的元素类型和长度都相同。std::array<int, 3> ai;//创建一个具有3个元素的array
array满足容器和反向容器的定义,除了其默认构造函数不能为空以外。有一个特殊的例外,存在一种长度为0的array,在这种情况下,array.begin() == array.end()。对这种array使用front()和back()的后果是未知的。
元素访问
array有与C风格数组一样的元素访问方式,同时还具有其特殊的访问方式。其函数成员有array.at(size_type n)、array.front()、array.back()、array.data()。#include <iostream>
#include <array>
int main()
{
std::array<int, 3> ia = {1, 2, 3};
std::cout << ia.at(1) << std::endl;//访问第2个元素
std::cout << ia.front() << " " << ia.back() << std::endl;//访问第1个元素和最后一个元素
std::cout << ia[1] << std::endl;//与内置数组相同,访问下标为1的元素
std::cout << *ia.data() << std::endl;//data()返回指向array对象(首元素)的指针
return 0;
}
迭代器
与容器类一样,array也有返回元素迭代器的函数(另一篇博文 点击打开链接)。容量相关操作
array定义了三种有关容器容量的操作,分别是array.empty()、array.size()和array.max_size()。
其他操作
除此之外,array还定义了array.fill(T val)和array.swap(array other)操作,具体用法如下:#include <iostream>
#include <array>
int main()
{
std::array<int, 3> ia1 = {1, 2, 3};
std::array<int, 3> ia2 = {4, 5, 6};
ia1.fill(0);//将ia1的所有元素赋值为0
for (auto &i : ia1)
std::cout << i << " ";
std::cout << std::endl;
ia1.swap(ia2);//将ia1和ia2的值互换(需满足元素类型相同,对象长度相等)
for (auto &i : ia1)
std::cout << i << " ";
std::cout << std::endl;
for (auto &j : ia2)
std::cout << j << " ";
std::cout << std::endl;
return 0;
}
最后
以上就是体贴哑铃为你收集整理的C++数组类型:array的全部内容,希望文章能够帮你解决C++数组类型:array所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复