c++ 用lambda删除vector中元素
2012-07-09 19:12
363 查看
vector<string> vec,vec2; string str; while(cin>>str) vec.push_back(str); cin.sync(); cin.clear(); while(cin>>str) vec2.push_back(str); typedef vector<string>::iterator Iter; string s; vec.erase(remove_if(vec.begin(),vec.end(), [=](string s) ->bool { vector<string>::const_iterator retEnd=find(vec2.begin(),vec2.end(),s); if(retEnd!=vec2.end()) return true; return false; }),vec.end());
程序虽小,但是有很多需要注意的地方。画红线的必须是const_iterator ,不能使iterator,否则提示无法从const_iterator 转换为iterator,lambda是常量调用,const Container后,返回的迭代器是const_iterator.
相关文章推荐
- c++ vector删除元素
- c++ vector遍历删除元素 出错的问题
- C++ vector一边遍历一边删除元素
- 删除元素【C++】顺序容器 Vector 注意事项
- c++ vector删除元素
- c++如何遍历删除map/vector里面的元素
- C++ vector 删除符合条件的元素
- C++中vector删除指定位置的元素
- [C/C++标准库]_[初级]_[std::vector的删除元素]
- C++ vector删除符合条件的元素示例分享
- C++之vector中元素删除
- C++遍历删除vector中的元素
- C++ vector 删除一个指定元素 和 find 一个指定元素
- C++ vector 删除符合条件的元素
- [C/C++标准库]_[初级]_[std::vector的删除元素]
- c++ vector erase删除元素
- C++ vector删除元素
- c++ vector 删除指定元素
- 【C++】循环删除vector等容器内的元素
- C++ vector一边遍历一边删除元素