21xrx.com
2024-11-22 13:06:42 Friday
登录
文章检索 我的文章 写文章
C++ 的 copy_if 函数
2023-06-26 21:27:11 深夜i     --     --
C++ copy_if函数 复制和条件 算法 STL

C++ 的标准库中有一个很有用的函数叫做 copy_if,它可以根据一个条件从一个容器中复制元素到另一个容器中。

copy_if 的两个参数是一个输入迭代器和一个输出迭代器。第三个参数是一个可调用的谓词,它返回一个布尔值来表示是否要将当前元素复制到输出容器中。后面两个参数是输入容器的开始和结束迭代器。

下面是用 copy_if 复制偶数的示例代码:


#include <iostream>

#include <algorithm>

#include <vector>

int main()

{

  std::vector<int> vec1 2;

  std::vector<int> vec2;

 

  std::copy_if(vec1.begin(), vec1.end(), std::back_inserter(vec2),

    [](int i) return i % 2 == 0; );

 

  for(const auto& i : vec2)

    std::cout << i << " ";

  // 输出:2 4 6 8

}

上面的代码创建了两个 vector,vec1 和 vec2,vec1 包含了一些整数,vec2 是空的。调用 copy_if 函数来复制所有偶数到 vec2 容器中,并将其打印出来。

copy_if 函数使用 lambda 表达式作为其第三个参数。这个 lambda 表达式检查一个整数是否是偶数,如果是偶数则将其加入到输出容器中。

copy_if 是一个非常有用的函数,它可以帮助我们从一个容器中筛选出符合条件的元素,并将它们复制到另一个容器中。我们可以使用不同的谓词来定义不同的条件,从而根据应用场景来进行使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复