擦除std :: vector的范围?

jma*_*erx 14 c++

如果我std::vector有100个元素,而我只想保留前10个元素并删除其余元素,那么有没有方便的方法呢?

jon*_*tar 38

是的,有一个擦除函数,它接受第一个和最后一个参数.

v.erase(v.begin() + 10, v.end());
Run Code Online (Sandbox Code Playgroud)


GMa*_*ckG 26

vec.resize(10); // drops the rest (capacity remains the same)
Run Code Online (Sandbox Code Playgroud)


Ern*_*ill 5

theVector.erase(theVector.begin() + 10, theVector.begin() + 100);
Run Code Online (Sandbox Code Playgroud)


Axe*_*ing 5

vec.erase(vec.begin() + 10, vec.begin() + 100);