容器和算法

本文深入探讨C++中的顺序容器,如list、vector和deque,以及map的erase方法细节。同时,介绍了容器适配器的概念,特别是如何使用适配器改变容器的行为。此外,文章还讲解了泛型算法,如排序算法std::sort的使用条件和限制,以及unique、count_if等算法。还讨论了插入迭代器、iostream迭代器和反向迭代器的使用,并解释了迭代器运算符优先级的问题。
摘要由CSDN通过智能技术生成
第二部分 容器和算法
**********************************************************************************************************************************
第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)来实现此功能呢?
可以
适配器 - 使一事物的行为类似于另一事物行为的机制,包括容器适配器、迭代器适配器和函数适配器。
         容器适配器让一种已存在的容器类型采用另一种不同的抽象类型的工作方式实现。


*****************************************
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值