对于vector中高效删除中间元素的技巧
众所周知,vector是连续存储空间,只提供高效的尾部删除方法pop_back() ,在中间删除的效率很低,那么如果大家想快速删除中间元素该如何实现?
话不多说,看代码:
//移除vector元素,最后一个填充。
template<typename T>
inline void ListRemoveAt(vector<T>&list, size_t idx)
{if (idx < list.size())list[idx] = list.back();list.pop_back();
}
我们的思路是:
如果想删除第二个元素,那么我们只需要将第二个元素填充为末尾元素,此刻就相当于把第二个元素删除了,但是此时尾部元素有两个, 所以我们需要把尾部元素删除(非常高效pop_back() ),这样的一套组合拳,就高效删除了vector中任意一个元素,当然,这种技巧适合于你对于元素的顺序无要求 !!!
对于vector中高效删除中间元素的技巧相关推荐
- js删除指定html及子标签,js中如何删除某个元素下面的所有子元素?(两种方法)...
js中如何删除某个元素下面的所有子元素?(两种方法) 一.总结 方法一:通过元素的innerHTML属性 元素element.innerHTML=""; 方法二:通过元素的remo ...
- 在浏览器中添加删除页面元素
在浏览器中添加删除页面元素 一.添加元素 确定添加元素位置,并找到容器元素. 新建一个填写内容步骤,添加填写项目,获取容器元素,填写属性为添加子元素addchild,填写内容为新元素的html代码. ...
- c语言如何删除数组中的某一个元素_数据结构之线性表高效删除重复元素
刚刚学完数据结构之线性表中关于顺序表和单链表的知识,我们知道顺序表中存储数据的结构是一个数组,对于数组来说,在尾部插入.删除元素是比较高效的,但是如果在中间或者开头插入.删除元素,就会涉及数据的搬移, ...
- java中map删除指定元素_Map中根据条件删除元素
今天在写程序过程中,需要根据判断条件删除一个Map中的相应数据,我自然而然想到可以通过调用Map中的remove(Object key)函数进行删除:代码如下: public Map processM ...
- python dict 删除元素_python中如何删除dict元素?
我们知道如果我们在网络上发布不当.不正确的言论.网站会把我们的评论删除.正是因为是不正确的,它就没有存在的必要.之前小编向大家介绍了在python字典里添加元素的三种方法(https://www.py ...
- js中怎么删除html元素的属性,如何使用JavaScript删除HTML元素?
给定一个HTML元素,如何使用JavaScript从文档中删除该HTML元素?下面本篇文章就来给大家介绍一下使用JavaScript删除HTML元素的方法,希望对大家有所帮助. 如何使用JavaScr ...
- python list 去除元素_python中如何删除list元素?
我们在使用微博的时候,看到关注的内容,会评论加入这件事的讨论.但是随着事态的发现,你可能会发现自己的言论不正确,你会选择删除.删除在我们生活中是很常见的事情,谁都不希望错误发生,一旦发生,就要删除改正 ...
- Vector中遍历删除元素
今天碰到一道题,我想直接遍历删除,后来报错了,仔细一想是因为,it删除过后,迭代器就失效了.所以可以用for循环来遍历,但是删除和操作的话得用while语句. for (vector<task& ...
- 判断vector中是否存在某元素的多种方法
工作中经常遇见的一个场景:判断某个元素是否在vector容器中. 当然,会有很多种方法,由内置数据类型到自定义数据类型,下面简单总结一下. [1]内置数据类型 代码胜过一切文档.如下示例代码: #in ...
最新文章
- php 图片在线编辑功能,summernote在线编辑器提交的内容PHP处理其中图片函数
- G面经prepare: Reorder String to make duplicates not consecutive
- 史上最详细的Android Studio系列教程四--Gradle基础
- Python带*参数和带**参数
- 腾讯视频怎么退出青少年守护模式
- WP SyntaxHighlighter 初探
- dns迭代查询配置_人人都能看懂-关于dns服务基本知识
- css图片居中_网页元素居中的n种方法
- android java service_[Java教程]Android四大组件之Service浅见
- java虚拟机-d参数配置_JVM虚拟机参数介绍
- 骑行318、 2016.7.13
- [TCP/IP] 基础知识总结
- alsa 麦克风采集音频
- 海量数据处理算法 各种STL容器使用的数据结构剖析
- mac ssh常见问题
- Linux中opengl库叫什么名字,Linux下的OpenGL——Mesa和GLX简介
- 教你cad版本怎么用转换器转换操作
- [NOI2005]聪聪与可可
- 网站运维应该做些什么?
- ERP系统-销售子系统-销售订单
热门文章
- python爬取客流数据_Python爬取南京地铁微博发布客流数据并进行分析
- org.hibernate.PropertyAccessException: Exception occurred inside setter of 错误解释
- 实时公交查询到站播报流量主小程序开发
- 题解 洛谷P1365 WJMZBMR打osu! / Easy
- H5播放器内置播放视频(兼容绝大多数安卓和ios)
- linux安全擦除ssd命令,10秒完成 100%恢复固态硬盘性能的终极安全擦除方法
- 四旋翼机械等,桨叶选取
- CXM百科 | 峰终定律,极致的体验总是起起落落起
- MySQL为什么推荐自增主键ID为主键及MySQL的调优
- 媒体报道 | 亿美软通以诚信之心 守护信息安全