随笔分类 -  C++

摘要:<map>头文件包含map和multimap map,multimap 和set, multiset一样,底层都是用红黑树实现的,其中set可以看做是value等于key的map 和set一样,map中元素都是默认 < 排序的 map中key不能重复不能修改,multimap中key可以重复不能修改 阅读全文
posted @ 2021-02-15 22:13 goodluck14 阅读(72) 评论(0) 推荐(0)
摘要:<stack>头文件包含stack <queue>头文件包含queue和priority_queue stack 容器适配器的一种,LIFO(last-in first-out),一般是用deque实现的。 一般来说作为底层实现容器要支持empty(), size(), back(), push_b 阅读全文
posted @ 2021-02-15 15:11 goodluck14 阅读(69) 评论(0) 推荐(0)
摘要:deque 双端队列,不同于vector是一块连续的区间,deque是一组独立区块, 不是所有元素像vector那样都连续,中间有部分不是相邻的。所以不建议用指针访问,建议用迭代器。 resize() // 改变deque的大小,n小于当前size 则保留前n个,n大于当前size则将其它的元素设置 阅读全文
posted @ 2021-02-15 13:20 goodluck14 阅读(48) 评论(0) 推荐(0)
摘要:<set> 头文件包含set和multiset set 特点:1)值唯一,无法更改且有序,默认是 < 号排序的 2)查找元素时比unordered_set慢 set containers are generally slower than unordered_set containers to ac 阅读全文
posted @ 2021-02-14 14:05 goodluck14 阅读(69) 评论(0) 推荐(0)
摘要:forward_list 是单向链表,只有一端能插入元素。 forward_list常用的函数如下 注意,一般容易有的size成员函数forward_list没有, 需要获取的话用distance(begin(list), end(list)) 计算 before_begin() // 第一个元素的 阅读全文
posted @ 2021-02-12 12:50 goodluck14 阅读(262) 评论(0) 推荐(0)
摘要:list 是双向链表,两端都可以插入元素。 list常用的函数如下 list 由于是链表实现的,所以不支持下标访问,一般用迭代器访问 insert() // list的insert不会使迭代器失效 The container is extended by inserting new elements 阅读全文
posted @ 2021-02-11 22:12 goodluck14 阅读(156) 评论(0) 推荐(0)
摘要:vector是能动态增加的顺序容器,因为能动态增加,所以当容量快满时会扩容,原来的元素会移动到新分配的空间那里。 vector<int> a a.size() // 实际元素个数Return size (public member function)a.max_size() // 能容纳的最大的元素 阅读全文
posted @ 2021-02-08 21:03 goodluck14 阅读(67) 评论(0) 推荐(0)
摘要:array是固定大小的数组,和我们用的 [ ] 形式数组差不多。 特点: 1. 只保存里面元素,连数组大小都不保存 Internally, an array does not keep any data other than the elements it contains (not even it 阅读全文
posted @ 2020-07-17 13:57 goodluck14 阅读(232) 评论(0) 推荐(0)
摘要:STL 主要包括6大组件,容器(Containers),算法(Algorithms),迭代器(Iterators),函数对象(Functors)(也称仿函数),分配器(Allocators),适配器(Adapters)。 容器,包含顺序容器,关联容器(有序与无序),容器适配器 顺序容器用数组或者链表 阅读全文
posted @ 2020-07-17 13:13 goodluck14 阅读(128) 评论(0) 推荐(0)
摘要:1 函数模板 #include <iostream> using namespace std; template <typename T> T square(T a) { return a * a; } int main(void) { cout << square<int>(3) << endl; 阅读全文
posted @ 2020-07-17 11:56 goodluck14 阅读(204) 评论(0) 推荐(0)