如何用STL实现替换此for循环?

问题描述 投票:0回答:1

我在这里有这个小的for循环(重命名了变量和类型):

vector<Iterator> validIterators;

for (auto itr = someStartIterator; itr != someVector.end(); itr++)
{
  if (itr->foo() && itr->bar())
    validIterators.push_back(itr); // Notice that I'm not deferencing the iterator
}

...

for (const auto& itr : validIterators)
{
  // Do stuff with the iterator explicitly (e.g. std::distance),
  // and not the object that it points (at least not at first).
}

有什么方法可以使用STL <algorithm>函数来使某些东西“更干净”?我不能在这种情况下使用Boost,也不能使用C ++ 20范围或range-v3。

谢谢你。

c++ functional-programming stl iterator c++17
1个回答
-2
投票

尝试一下:

© www.soinside.com 2019 - 2024. All rights reserved.