问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

STL中遍历erase()与clear()效率问题

发布网友 发布时间:2022-11-23 02:58

我来回答

1个回答

热心网友 时间:2023-12-30 15:32

删除某个容器里的某个元素:c.erase(T);
看似一个简单的动作,然而对不同类型的容器,内部却做了截然不同的事情,后面介绍。
假设有这样一个题目,将某个容器中所有满足条件N == X的元素删除,按照常规的思路应该有类似这样的代码:
// 假设Container和container分别表示一种容器和对应的一个对象
Container<T>::iterator it;
for (it = container.begin(); it != container.end(); ++it) {
if (N == X)
container.erase(it);
}
然而这样的代码对于任一种容器都是错误的
容器按内存分配方式可以分为链表容器和数组容器。
所谓的链表容器指的是一种表现方式,包括list、slist等这样基于节点的容器(动态分配内存块)和set、map、multiset、multimap等关联容器(平衡树实现),而数组容器指的是在一块连续的内存上保存元素的连续内存容器,比如vector、deque、string等。
链表容器以list为例,当执行container.erase(it)时,确实第一个满足条件的元
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
抖音弹幕怎么关掉?怎么关闭抖音弹幕? 惠普LaserJet P3005D是否支持B5纸的双面打印? word打印出图片总是缺一部分怎么办-word打印图片不完整怎么解决_百度... 理想one哪里产的车辆? 抚州抚州ONE在哪里? one地址在哪里? 如何在图片上写字(如何在图片上添加文字) 网商贷为什么钱没到账 高级经济师职称怎么评 高级经济师需要评审吗 c++ stl中map的问题 临沂星光大道ktv会员卡多少钱一张? 卡是永久的还是年卡 豪华包和大包多... 星光大道来山东临沂吗 想知道: 临沂市 临沂星光大道ktv 在哪 荷载2人的奔驰B型房车售价竟然高达200万元,有钱人的世界真不懂_百度知... 西安一市民近200万购买的奔驰G350不制冷,4S店该给出怎样的赔偿? 南京西门子7字型油烟机各型号 西门子的斯优泊清洁油烟机有吗 济宁有多少个县市区? 武汉的住房公积金管理中心地点是哪,不知如何公积金提取如何办理公积金... 青山区公积金中心地址 谁有郭沫若《屈原》的原文? 转变作风服务群众专题组织生活会对照检查材料 泡茶用那些杯子好? piscrt为什么找不到七龙珠的头像 豆豆鞋什么颜色好看(豆豆鞋什么颜色好搭配) 三星10寸平板手机后盖能摔出来一点儿安不进去了怎么办 乐视手机2(x620)下载的付费主题存在哪里了?可不可以提取出来 oppo手机老是死机 KravMagaTaiwan中文怎么读 燃气灶陶瓷面板裂了怎么修复 燃气灶点火针陶瓷修复 济宁十二县市区 济宁分几个县市区 九里香冬天的养殖方法和注意事项 我养的水晶球突然变小了,怎么回事 妈妈英文怎么读 如何英语表达妈妈 2-SpringMVC-1-模型和视图 哪些牌子的手机内存有128G和256G? 妈妈的英文是怎样说的? 男生怎么看和比自己游戏实力强的女生开黑这件事? 三峡精工能源投资有限公司是几级子公司 三峡后扶资金要发多久 福建省人民政府办公厅关于印发《福建省三峡工程库区移民对口支援基金管 ... 不计免赔就一定全赔?你要不知道这四种情况,依然只能自己掏腰包 魔爪稳定器充电正常状态是什么?- 问一问 横评|魔爪 Air vs. AirCross 对比 电子健康卡子女身份验证失败怎么办 三和名仕城周边环境怎么样?生活便利吗? 惠州哪里有开发区,像三和开发区一样,有工厂,有住宅区,而且铺租不贵的...