【发布时间】:2011-11-13 04:38:13
【问题描述】:
我似乎想不出一种可靠的方法(也可以压缩内存)从std::vector 中删除前 N 个元素。怎么做呢?
【问题讨论】:
-
您愿意改成
std::deque吗?这样做效率更高。 -
没关系!今天我的大脑严重冻结。
-
@Dilip?费力?为何如此? STL 容器只需更改一行即可轻松交换,只要您正确使用它们,如果不能,您可能没有正确使用它们?
-
@Dilip :听起来有人没有足够明智地使用
typedef。 ;-] -
你不能 typedef 认为
std:vector<T>是连续的而std::deque不是,这在与需要 T* 的遗留代码交互时非常重要。但是对于这样的代码,您可能无法删除前 N 个元素,而是传递&v[N]。