容器
友善啊,朋友
这个作者很懒,什么都没留下…
展开
-
容器的反向迭代器
QStringList list; for(int i = 0;i < 26;++i) { char a = 'a'; a+=i; list << QString(a); } QStringList tempList; for(auto it = list.begin();it != list.end();++it) { tempList << *it;...原创 2021-01-04 23:58:25 · 201 阅读 · 0 评论 -
泛型算法:容器相邻重复元素去除算法unique()
unique()函数只能对相邻的元素进行去重操作,所以在使用之前要排序。对于自定义元素要重载"=="运算符,因为去重要有判断重复的标准。struct ceshi{ int frist = 0; int second = 0; bool operator==(const ceshi &b) const { if(b.frist == this->frist && b.second == this->second)原创 2020-12-30 22:49:51 · 450 阅读 · 0 评论 -
插入迭代器
插入迭代器用于向容器中添加数据。 QJsonArray array; auto it = std::back_inserter(array); for(int i = 0;i < 5;++i) { QJsonObject obj; obj["index"] = i; *it = obj; ++it; } for(int i = 0;i < array.size();++i)原创 2020-12-26 15:55:25 · 226 阅读 · 0 评论 -
c++标准库中的关联容器
关键字有序的:1、map 保存key:value,key不可重复2、set 保存key,key不可重复3、multimap 保存key可重复出现的key:value4、multiset 保存key可重复出现的key关键字无序的:1、unordered_map2、unordered_set3、unordered_multimap4、unordered_multiset和上面的四个对应类似,就是key是无序储存的。...原创 2020-12-22 21:57:29 · 177 阅读 · 0 评论 -
vector对象是如何增长的
《c++ primer》 9.4问题:vector储存元素在内存中是要连续存放的,假如要向其中添加元素则容器每次要申请新空间存放原来的元素和新元素并且释放原来的空间。对性能影响极大。策略:为了避免这种情况,标准库的实现者采用的方式是当要申请空间时,申请的比所需的空间大的空间作为备用。 std::vector<int> vec; vec.reserve(10); qDebug() << vec.size() << endl; q原创 2020-12-19 11:18:45 · 225 阅读 · 0 评论 -
顺序容器常用操作——交换容器中的元素、增删元素
1、交换容器中的元素 std::list<int> a = {1,2,3}; std::list<int> b = {4,5}; a.swap(b); qDebug()<<a<<b; std::array<int,5> c; std::array<int,5> d; c.swap(d);只能交换相同存放数据类型的容器,定长数组array只能与同样长度的array交换原创 2020-12-17 22:13:54 · 338 阅读 · 0 评论 -
迭代器
《c++ primer》9.2.1章节1、迭代器范围由一对迭代器表示:begin、end。2、end指向尾元素之后的位置:3、end可以指向和begin相同的位置,但不能指向begin前面的位置。(编译器不强制,确保符合此要求是程序员的责任)4、假如begin和end构成了一个合法迭代器范围则:如果begin == end,范围为空 如果begin != end,范围不为空且begin指向第一个元素 ++begin若干次后将使得begin == endwhlie(begin.原创 2020-12-16 13:24:58 · 190 阅读 · 0 评论 -
c++标准库中的顺序容器和使用原则
《c++ primer》9.1章节1、vector:大小可变的数组,可快速随机访问元素,在尾部之外的地方删除、插入较慢,元素储存在连续的内存空间;2、deque:双端队列,可快速随机访问元素,在头尾删除、插入很快;3、list:双链表,不能快速随机访问元素,要访问元素只能双向顺序遍历,在任意地方插入、删除都很快,额外内存开销大(除了储存元素还有储存地址);4、forward_list:单链表,不能快速随机访问元素,要访问元素只能单向顺序遍历,在任意地方插入、删除都很快(额外内存开销大);原创 2020-12-14 23:17:20 · 211 阅读 · 0 评论