我是靠谱客的博主 体贴哑铃,最近开发中收集的这篇文章主要介绍C++数组类型:array,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

概述

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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部