gpt4 book ai didi

c++ - 验证 copy_if 的返回值

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:08:06 32 4
gpt4 key购买 nike

我想检查 std::copy_if 的返回值是否有效。像这样

auto it=std::copy_if(s.begin(),s.end(),d.begin(),[&](...){...});
if([it]) // ????
{
// do something
}

最佳答案

copy_if 的返回值标记了目标范围的“最后一个”。如果您将一个范围传递给 copy_if,它可以容纳所有要复制的值,那么您可以取消引用输出范围开始到 it - 1 之间的所有内容.

#include <vector>
#include <algorithm>
#include <iostream>

int main()
{
std::vector<int> s{1,2,3,4,5,6,7,8,9,10};
std::vector<int> d(10);

auto ce = std::copy_if(s.begin(),s.end(),d.begin(),[&](int x){ return x > 5; });

for(auto i = d.begin(); i != ce; ++i)
{
std::cout << *i << "\n";
}
}

关于c++ - 验证 copy_if 的返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46487432/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com