但是仍然存在这样一种可能,就是我的vector就是用来保存一些数据,顺序对我来说是没有意义的。换句话说,我在为我不需要的东西买单。这并不符合c++的理念。
那么为什么不提供一个成员方法fast_erase(),它——
--> 把要删除的成员和最后一个交换
--> 删除最后一个成员
我测试了一下,对于100*100*10个int,
for(...)
vector<int>.erase(begin());
和
for(...)
my_vector<int>.fast_erase(begin());
之间,所需要的时间,相差了好几个数量级。
所以我认为这样做是值得的。