c++实战:vector如何删除结构体指定元素

分类: API开发 |
vector元素都可以通过迭代器删除,一般书里面和网上大多都是删除固定元素或指定范围元素,但很少涉及删除指定条件的元素,而通过结构体里面某一个元素的条件进行判断进行删除就更少了,但实际运用中经常却经常用到,例如通过文件流读取了N个周期的K线数据,新的进来之后要删除旧的,而且需要通过条件判断是否有新的数据进来以及删除多少条数据,当我们把数据存入vector后就就需要通过结构体的某个元素(例如索引)判断要删除哪些和多少数据
下例是对一个K线数据进行整理,需要很简单,无论读入的数据有多少只保留51条最新数据(样本不够51就全部保留),并且重新编号,先看看原始数据
现在有55行数据,需要删除最早的4行并且重新编号,通过迭代器删除所有1-4的元素输出如下
固定位置删除显然不行,因为需求是无论原始数据有多少行都能按照需要保留最后51条数据并且重新编号,当数据小于51则全部保留,下面读入一个44行数据看看
元素全部保留并且编号正确,符合要求,看看c++源码