我们说我的数据是4乘3 vector<vector<int> >
:
1 2 3
4 5 6
7 8 9
10 11 12
我希望删除包含元素8
的每一行,最后结果如下:
1 2 3
4 5 6
10 11 12
我一直在尝试:
for (vector<vector<int> >::iterator it = v.begin(); it != v.end(); it++) {
if (find(it->begin(), it->end(), 8)) {
// I will remove the row in here
}
}
给了我:
error: no matching function for call to 'find(std::vector<int>::iterator, std::vector<int>::iterator, int)'
我对stl
没有多少经验,所以我想知道:
find
电话有什么问题?Ofc对我的问题任何优雅的解决方案也欢迎..
答案 0 :(得分:2)
我的查找电话有什么问题?
您可能忘了#include <algorithm>
在迭代过程中从向量中删除元素是否安全?
查看擦除 - 移除习语 - 擦除矢量元素可能很棘手。