1-2 好网站、6大组件、复杂度、前闭后开区间、auto&、for、容器结构和分类

STL是泛型最成功的作品,

3个极好的网站推荐:

https://cplusplus.com/

https://en.cppreference.com/w/

https://gcc.gnu.org/

 

 

2 STL分成6大部件:

容器用来放东西,放东西要占用内存,但是你不需要关注内存,用分配器解决;

算法通过迭代器来遍历容器里的数据;

仿函数适配器:相加、相减(人、石头)......

容器适配器电脑有个适配器

上面有两个适配器。

 

 默认分配器 alloctor<int>

 怎么初始化?查手册

count_if是算法,而不是仿函数

95%的容器都有:vi.begin()/vi.end()迭代器

 

3 复杂度:

 

 n要10W、100W

 

4 前闭后开区间

*(c.end())是最后一个元素的下一个元素。链表空间不一定连续。

迭代器一般先指向c.begin();

 

5 新语法:

 

要修改,就用&

 

6 容器结构和分类

1)序列式容器

2)关联式容器:有key和value,适合快速查找,电脑:放大量资料,找东西。unordered(不定序)也是关联的。

 

array固定大小;vector,后面有个箭头,牵头表示可扩充;deque,连续的,两端可进可出为什么?list,双向的;单向链表,

list比单向链表内存多;链表的查找太慢。

 

 问题:deque是双向可进可出;queue,后进前出

set/multiset下面是二分树、红黑树来实现;set和map的区别是map是由key和value组成的;有multi和没有multi的区别是:multi的元素可以重复。 

 

哈希表:vector + 单向链表

 

posted @ 2022-08-09 11:18  妖山鬼店  阅读(34)  评论(0)    收藏  举报