概述
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所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复