我认为在迭代器中使用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)
我已将实例名称更改vector为myVector.将类的名称用于实例并不是一个好主意.
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)
| 归档时间: |
|
| 查看次数: |
35593 次 |
| 最近记录: |