小编two*_*ats的帖子

使用STL查找向量中的所有元素

我有一组需要操作的元素,在集合上调用成员函数:

std::vector<MyType> v;
... // vector is populated
Run Code Online (Sandbox Code Playgroud)

对于没有参数调用函数,它非常简单:

std::for_each(v.begin(), v.end(), std::mem_fun(&MyType::myfunc));
Run Code Online (Sandbox Code Playgroud)

如果我希望调用的函数有一个参数,则可以执行类似的操作.

我的问题是,如果满足某些条件,我想在向量中的元素上调用一个函数. std::find_if将迭代器返回到符合谓词条件的第一个元素.

std::vector<MyType>::iterator it  = 
      std::find_if(v.begin(), v.end(), MyPred());
Run Code Online (Sandbox Code Playgroud)

我希望找到符合谓词的所有元素并对它们进行操作.

我一直在研究STL算法的" find_all"或" do_if"等价物,或者我可以用现有的STL做这个(这样我只需要迭代一次),而不是自己滚动或只是做一个标准迭代使用for循环和比较.

c++ stl

13
推荐指数
3
解决办法
2万
查看次数

标签 统计

c++ ×1

stl ×1