对STL的一些小计

来源:互联网 发布:google地球 类似软件 编辑:程序博客网 时间:2024/06/05 05:32

一、std::min是比较迭代器的大小,例如begin()这个迭代器就比end()小、std::min_element()是比较元素的值大小的 。

二、什么时候用vector、map、list。

vector:

1、数据结构是数组,连续的线性空间。

2、vector和array在行为上很相似。但是array是静态的,vector是可增长的。vector在分配空间的时候,会分配的比客户需求量更大。当需要插入新元素的时候,会先在备用空间中构造对象。如果备用空间不足的话,就会先(1)分配一块大的内存(一般为两倍),(2)然后移动数据到新空间中,(3)随后删除旧的内存空间。

为什么要执行这么复杂的三步骤?因为无法确定旧空间之后还有可配置的空间。

3、vector的迭代器:原始指针就可以满足。

4、pop_back()

5、erase()

6、insert()

List:

1、数据结构是环形的双向链表。

2、每一个节点都有一个指向前节点的指针、一个指向后节点的指针、以及数据。

3、List的迭代器:不再是简单的原始指针,必须满足*、->、前置++、后置++等等指针行为。

4、push_back()

5、insert()

0 0
原创粉丝点击