我有一个实时问题.我正在使用向量来解决我的问题.问题是我必须遍历列表的90%的时间.5%的时间我必须将push_back
数据列入清单.1%的时间我必须删除.但是在该列表中,如果我有超过1GB的数据,那么要删除第0个元素,它需要超过2分钟并且系统挂起.如何避免它,或任何其他标准模板库可以解决我的问题?
所以,第一个解决方案是最简单的.使用不同的数据结构.std::deque
例如,A .
让我们说由于某种原因,一个std::deque
不会起作用.但此外,您可以重新排序元素.如果是这种情况,那么让我们这样做:
void remove(std::vector<T> elems, int index) {
swap(elems[index], elems.back());
elems.pop_back();
}
Run Code Online (Sandbox Code Playgroud)