第二部分 容器和算法
**********************************************************************************************************************************
第9章 顺序容器
list - 顺序容器
vector、deque - 随机访问顺序容器,迭代器支持算术运算
map的erase方法:
该方法中利用了后++的特点,这个时候执行mapTest.erase(it++);这条语句分为三个过程
1、先把it的值赋值给一个临时变量做为传递给erase的参数变量
2、因为参数处理优先于函数调用,所以接下来执行了it++操作,也就是it现在已经指向了下一个地址
3、再调用erase函数,释放掉第一步中保存的要删除的it的值的临时变量所指的位置
如果只是mapTest.erase(it); 当这条语句执行完后,it就是一个非法指针,如果再执行++就会出错
问题:
1】只有list和deque支持push_front,而vector不支持,但vector是否可以使用vec.insert(vec.begin(), 1)来实现此功能呢?
可以
适配器 - 使一事物的行为类似于另一事物行为的机制,包括容器适配器、迭代器适配器和函数适配器。
容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。
*****************************************
**********************************************************************************************************************************
第9章 顺序容器
list - 顺序容器
vector、deque - 随机访问顺序容器,迭代器支持算术运算
map的erase方法:
该方法中利用了后++的特点,这个时候执行mapTest.erase(it++);这条语句分为三个过程
1、先把it的值赋值给一个临时变量做为传递给erase的参数变量
2、因为参数处理优先于函数调用,所以接下来执行了it++操作,也就是it现在已经指向了下一个地址
3、再调用erase函数,释放掉第一步中保存的要删除的it的值的临时变量所指的位置
如果只是mapTest.erase(it); 当这条语句执行完后,it就是一个非法指针,如果再执行++就会出错
问题:
1】只有list和deque支持push_front,而vector不支持,但vector是否可以使用vec.insert(vec.begin(), 1)来实现此功能呢?
可以
适配器 - 使一事物的行为类似于另一事物行为的机制,包括容器适配器、迭代器适配器和函数适配器。
容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。
*****************************************