您的位置:首页 > 编程语言 > C语言/C++

(原創) 如何删除std::vector内的element?(使用find) (C/C++) (STL)

2006-11-15 15:26 676 查看
若要删除std::vector中的element,正规的方式该用find() generic algorithm,若find()找到了,会传回该iterator,若找不到,将传回vector.end()。这种写法远比用for loop干净很多。

1#include <iostream>
10#include <vector>
11#include <algorithm>
12
13int main() const int iaSize = 11;
15 int ia[] =
17 std::vector<int> ivec;
18 ivec.insert(ivec.end(), ia, ia + iaSize);
19
20 // Compile OK, but run-time error!!
21 // for(std::vector<int>::iterator iter = ivec.begin();
22 // iter != ivec.end(); ++iter) {
23 // if (*iter == 8) {
24 // ivec.erase(iter);
25 // }
26 // }
27
28 // This is a RIGHT way to do it.
29 std::vector<int>::iterator iter = find(ivec.begin(), ivec.end(), 8);
30 if (iter != ivec.end()) ivec.erase(iter);
32 }
33
34 // cout the result
35 for(std::vector<int>::const_iterator iter = ivec.begin();
36 iter != ivec.end(); ++iter)
38 std::cout << *iter << std::endl;
39 }
40
41 return 0;
42}

See Also
(原創) 何删除std::vector内的element?(使用for loop) (C/C++) (STL)

Reference
C++ Primer 4th P.327
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: