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

概述

C++数组类型:array     2020/3/20 
=====================================================================================
1.1.标准库中顺序容器:
(1)、vector:可变大小数组。支持快速随机访问。在尾部之外位置插入或删除元素可能很慢
(2)、deque:双端队列。支持快速随机访问。在头尾位置插入/删除速度很快
(3)、list:双向链表。只支持双向顺序访问。在list中任何位置进行插入/删除操作速度都很快。
(4)、forward_list:单向链表。只支持单向顺序访问。在链表任何位置进行插入/删除操作速度都很快。
(5)、array:固定大小数组。支持快速随机访问。不能添加或删除元素。
(6)、string:与vector相似的容器,但专门用于保存字符。随机访问快。在尾部插入/删除速度快
1.2.选择容器原则:
(1)、一般应用vector;
(2)、如程序有很多小元素,且空间的额外开销很重要,则不要使用list或forward_list;
(3)、如程序要求随机访问元素,应使用vector或deque;
(4)、如程序要求在容器的中间插入或删除元素,应使用list或forward_list;
(5)、如程序需要在头尾位置插入或删除元素,但不会在中间位置进行插入或删除操作,则使用deque;
1.3.顺序容器适配器:
stack、queue和priority_queue。
=====================================================================================
2.C++的array固定大小的容器 类,与内置数组特点相似(随机访问、大小固定等)
不像C风格数组,array无法自动转换为array*。两个array对象之间可以赋值,只要两个对象的元素类型和长度都相同

//容器容量操作:
array.empty()
array.size()
array.max_size()

//元素访问
array<int, 3> arr = {1, 2, 3};                 //创建3元素array--默认构造函数不能为空
cout<<arr.at(1)==arr[1]<<endl;           //第2个元素
cout<<(arr.front()+arr.back())<<endl;;//首元素+尾元素
cout << *arr.data() <<endl;                 //arr.data()首元素指针 

//其他操作
arr.fill(0);           //arr所有元素赋值为0
arr.swap(arr1);//arr和arr1值互换(需满足元素类型相同,对象长度相等)

//迭代器
typedef std::array<int, 5> ArrayType;
ArrayType  arr = { 1, 2, 3, 4, 5 },arr1;
arr = arr1 ; 

for (auto i : arr)//for (auto &i : arr)
     std::cout << i << endl;
 
for (array<int, 5>::const_iterator  iter = arr.begin();iter != arr.end(); iter++)
      cout << *iter << endl; 
 
std::sort(arr.begin(), arr.end());  //排序 
=====================================================================================

 

最后

以上就是听话音响为你收集整理的C++17数组类型:array的全部内容,希望文章能够帮你解决C++17数组类型:array所遇到的程序开发问题。

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

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

评论列表共有 0 条评论

立即
投稿
返回
顶部