我正在使用一个
我想复制直到满足条件。标准库中是否有类似这样的函数:
istream_iterator<char> it
,因此无法对范围进行反向迭代(或两次迭代它,而不需要大量的麻烦)。我想复制直到满足条件。标准库中是否有类似这样的函数:
copy_until(it, istream_iterator<char>(), ostream_iterator<char>(cout), [](const unsigned char i){ return isalpha(i); })
如果我必须滚动某些内容,我可以这样做,我只是希望能找到一些我还没有想出的魔法。
编辑:
我期望从我的虚构的 copy_until
函数中得到以下行为:
while(it != istream_iterator<char>()) {
if(!isalpha(static_cast<unsigned char>(*it))) break;
cout << *it++;
}
copy_if
这样的函数吗?还是类似于find
算法,它可以找到满足条件的元素之后的一个位置,以便你可以复制一段范围? - EdChumcopy_if
仍然会继续复制。我想要的是在条件被违反时停止复制,我已经进行了编辑以澄清。 - Jonathan Meestd::istream_iterator<char>
就是一个例子。 - Pete Becker