删除vector C++中的所有元素

thi*_*zy4 -3 c++ vector erase

可能重复:
从c ++ std :: vector中删除所有项目

我认为在迭代器中使用begin会弄乱它,因为它只迭代26次并跳过每2个元素.我怎么能这样做?

void clearVector() {
    for (int i = 0; i < 52; i++) {
        vector.erase(vector.begin() + i);
    }
}
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 15

你调用std::vector::clear()方法:

myVector.clear();
Run Code Online (Sandbox Code Playgroud)

我已将实例名称更改vectormyVector.将类的名称用于实例并不是一个好主意.


Pub*_*bby 10

std::vector有一个clear成员,你知道:

void clearVector() {
    vector.clear();
}
Run Code Online (Sandbox Code Playgroud)

无论如何,既然你从左边擦除了,那么尺寸也会缩小.这可以按照你想要的方式工作,虽然效率很低,因为它必须在每次迭代时向前面做O(N)个副本.

void clearVector() {
    for (int i = 0; i < 52; i++) {
        vector.erase(vector.begin());
    }
}
Run Code Online (Sandbox Code Playgroud)