概述
本文将介绍c++中所有容器共同的部分
1.类型别名:
(1).iterator表示此容器的迭代器类型
(2).const_iterator可以读元素但是不能修改元素的迭代器类型
(3).size_type无符号整数类型,足够储存这种容器类型最大可能的容器大小
(4).difference_type带符号整型数,足够保存两个迭代器之间的距离
(5).value_type元素类型
(6).reference元素的左值类型,与value_type&含义相同
(7).const_reference元素的const左值类型,与const value_type&含义相同
(8).以上是类内的类型别名,(在类外)使用时需要作用域运算符
vector<int>::difference_type count;
list<string>::value_type ss;
2.构造函数
vector<int>a1;
//默认构造函数,空容器
vector<int>a2(a1);
//构造a的拷贝aa
vector<int>a3(b, e);
//构造aaa,将迭代器b、e指定的范围内的元素拷贝到aaa,array不支持
vector<int>a4{ 1,4 };
//列表初始化
3.大小
vector<int>a;
a.size();
//forward_list不支持
a.max_size();
a.empty();
4.添加、删除(array不支持)
vector<int>a;
a.insert();
//插入元素
a.emplace();
//插入元素
a.erase();
//删除指定元素
a.clear();
//删除所有元素
5.关系运算符
(1).所有容器都支持==、!=
(2).无序关联容器不支持关系运算符,其他都可>、>=、<、<=
6.迭代器
(1).迭代器类型类似于指针类型,需要解引用获得对象的引用
(2).可以根据是否begin==end历遍
vector<pair<int, int>>a;
a.begin();
a.end();
a.cbegin();
//c++11引入
a.cend();
a.begin()->first;
7.反向容器的额外成员(forward_list不支持)
(1).reverse_iterator按逆序寻址元素的迭代器
(2).const_reverse_iterator不能修改元素的逆序迭代器
(3).对一个反向迭代器来说,各种操作的含义发生颠倒,如++操作会得到上一个元素
vector<int>a;
a.rbegin();
//返回指向a的尾元素的迭代器
a.rend();
//返回指向a的首元素之前位置的迭代器
a.crbegin();
//只读
a.crend();
8.赋值和swap
(1).除array外,对于swap的操作会很快:元素本身并未交换,只是交换了两个容器的内部数据结构,优于直接赋值
vector<int> a{ 1,2,3 }, b = { 8,9,4 };
a = b;
swap(a, b);
a.swap(b);
//assign不适用于array和关联容器
a.assign(b.begin(), b.end());
//迭代器
a.assign(5, 7);
//替换为5个值为7的元素
最后
以上就是现实吐司为你收集整理的c++容器操作的全部内容,希望文章能够帮你解决c++容器操作所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复