第9回
下图中,被注释的这种语句写法是要避免的(避免存储end操作返回的迭代器)
注意:list和deque 既可以在前面insert数据也可以在后面insert数据
vector只能在后面insert数据
第10回
如下图,容器与容器相互比较的前提是:必须是同类型的容器才能比较,而且容器中的数据类型也必须一样
第11回
第12回
注意,链表没有下标操作
第13回
第14回
注意:使用 = 进行赋值,c1和c2的类型必须一样,使用assign进行赋值,则类型兼容即可
第15回
数组的优点是具有下标,方便查找与操作,缺点是大小固定,一旦数组大小确定了,那么数组大小就不能再更改了
对于向量,每次扩大容量都是要创建新的数组,然后把旧的数组中的内容拷贝到新的数组中来,这个过程比较费时间,为了避免频繁的重复这一个过程,所以容量扩大过程中,每次扩大的数组的容量会越来越大
注意:上图中,第一个框表示向量的大小(向量里放了多少个数,大小就是多少)
第二个框表示向量的容量(容量是指这个向量最多可以放多少个数,当“大小”=“容量”时,向量会自动扩大容量,且扩大的容量数会越来越大)
下图函数作用为快速扩充向量容量
第16回
比较:
push_back: list的push_back永远都很快,而vector的push_back有时候比较慢(前期)
insert:list的insert非常快,而vector的insert比较慢,因为vector每次插入都要将插入点后的所有数据向后移动,而对链表进行insert时,只需要动态创建1个节点,然后把前面的指针指向这个新节点即可(如下图)
erase(删除):vector的erase很慢,但list的erase很快
排序:vector可以借助下标进行“快速排序”,而list没有下标,不能进行“快速排序”,所以vector排序速度快;vector可以进行二分查找,但list不能进行二分查找
具体来说,如果需要在容器中间进行插入、删除数据,则使用list,否则使用vector
deque既可以push_back也可以push_front,而vector只能在后端进行push,但是,deque的所有操作都要比vector要慢,deque的优点:由于内部是分区存放的,所以可以保存的数据比vector大得多
第17回
C语言中表示字符串的方法,字符串最后是一个 \0
C语言中表示字符数组的方法,最后没有 \0
第18回
字符串也可以直接使用下标(如下图)
第19回
其他顺序容器都没有上图中的操作
第20回