C++11常用特性介绍——array容器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++11常用特性介绍——array容器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2278字,纯文字阅读大概需要4分钟。
内容图文
![C++11常用特性介绍——array容器](/upload/InfoBanner/zyjiaocheng/665/f67e17b7c5a74330b00e7de2d5391aeb.jpg)
std::array是具有固定大小的数组,支持快速随机访问,不能添加或删除元素,定义于头文件<array>中。
一、概要
array是C++11新引入的容器类型,与内置数组相比,array是一种更容易使用,更加安全的数组类型,可替代内置数组,作为数组升级版,继承数组最本特性,同时融入部分操作。
二、定义与初始化
array和数组一样,为固定大小容器类型,定义时即需声明大小与类型
1)内置数组初始化
int array[10] = {0};
int array[10] = {1,2,3,4,5,6,7,8,9,0};
int array[] = {1,2,3,4,5,6,7,8,9,0};
int array[10] = {1,2,3};//后面的7个数据的值在Qt上会被随机
注:数组的初始化不能直接使用赋值,只能通过遍历的形式拷贝
2)array的初始化
std::array<int,10> a = {1,2,3,4,5,6,7,8,9,0};
std::array<int,10> a{1,2,3,4,5,6,7,8,9,0};
std::array<int,10> a{1,2,3};//后面的7个数据的值在Qt上会初始化为0
int arr[10]{10,9,8,7,6,5,4,3,2,1};
std::array array<int,10>;
memcpy(array.data(),arr,sizeof(arr));//拷贝初始化
array.fill(5);//填充初始化(所有数据初始化为5)
array = arr;//赋值初始化
三、访问
1)内置数组的访问:下标、指针和迭代器
int array[10] = {1,2,3,4,5,6,7,8,9,0};
int value = array[0];//通过下标获取数组的第一个元素
int value = *p; //通过指针获取数组的第一个元素
for(int *i=bebin(array);i != end(array);i++)//C++11中为了给数组提供更加安全的访问方式,引入了begin()和end()函数
{
std::cout << *i << " ";
}
std::cout << std::endl;
2)array的访问:下标、at、指针和迭代器
std::array<int,10> array{1,2,3,4,5,6,7,8,9,0};
//下标访问
for(std::size_t i=0;i<array.size();i++)
{
std::cout << array[i] << " ";
}
std::cout << std::endl;
//font、at、back访问
for(std::size_t i=0;i<array.size();i++)
{
std::cout << array.at(i) << " ";
}
std::cout << std::endl;
//正向、反向、常量迭代器:begin、cbegin、rbegin、crbegin、end、cend、rend、crend
std::array<int,10>::iterator iter;
for(iter=array.begin;iter != array.end();iter++)
{
std::cout << *iter << " ";//迭代器访问
}
std::cout << std::endl;
//指针:data
int arr[10]{10,9,8,7,6,5,4,3,2,1};
std::array array<int,10>;
memcpy(array.data(),arr,sizeof(arr));
for(std::size_t i=0;i<array.size();i++)
{
std::cout << array[i] << " ";/./输出:10 9 8 7 6 5 4 3 2 1
}
std::cout << std::endl;
array是数组的升级版,将数组正式纳入到容器范畴,array在使用和性能上都要强于内置数组,对于固定大小的使用场景,可用array替代数组工作。
尽量使用at方法来访问元素,因为运算符[]不会对索引值进行检查,像array[-1]是不会报错的。使用at()将在运行期间捕获非法索引的,默认将程序中断。
内容总结
以上是互联网集市为您收集整理的C++11常用特性介绍——array容器全部内容,希望文章能够帮你解决C++11常用特性介绍——array容器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。