我在这里有这个小的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。
谢谢你。
尝试一下: