中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

copy_if在C++中的用法是什么

c++
小樊
84
2024-09-25 01:20:16
欄目: 編程語言

std::copy_if 是 C++ 標準庫 <algorithm> 中的一個算法,它用于從一個輸入范圍復制滿足特定條件的元素到另一個輸出范圍。

函數原型如下:

template< class InputIt, class OutputIt, class UnaryPredicate >
OutputIt copy_if( InputIt first, InputIt last, OutputIt d_first, UnaryPredicate p );

參數說明:

  • firstlast 定義了輸入范圍,即你想要從中復制元素的范圍。
  • d_first 是輸出范圍的開始,即你想要將復制的元素放置的位置。
  • p 是一個一元謂詞,它定義了滿足什么條件的元素應該被復制。

std::copy_if 的工作方式是這樣的:對于輸入范圍內的每個元素,如果 p 返回 true,則該元素被復制到輸出范圍。否則,該元素被忽略。

下面是一個簡單的例子,它使用 std::copy_if 來復制一個 std::vector 中所有的偶數:

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

int main() {
    std::vector<int> src = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    std::vector<int> dest;

    // 預留足夠的空間
    dest.reserve(src.size());

    // 使用 std::copy_if 復制所有的偶數
    std::copy_if(src.begin(), src.end(), std::back_inserter(dest), [](int x) { return x % 2 == 0; });

    // 輸出結果
    for (int x : dest) {
        std::cout<< x << ' ';
    }

    return 0;
}

注意,在這個例子中,我們使用了 std::back_inserter 來作為輸出迭代器,這樣元素就會被添加到 dest 的末尾。如果你想要將元素添加到 dest 的開頭,你可以使用 std::front_inserter

0
稷山县| 福安市| 安阳县| 长子县| 灵宝市| 响水县| 密山市| 友谊县| 乌拉特后旗| 方城县| 武清区| 囊谦县| 禹城市| 安新县| 兴宁市| 克拉玛依市| 宜宾县| 敖汉旗| 修水县| 嘉禾县| 淳化县| 柏乡县| 海安县| 汉寿县| 巴南区| 正安县| 改则县| 临沧市| 夹江县| 什邡市| 翁源县| 民权县| 建瓯市| 陵川县| 嘉峪关市| 玛曲县| 江口县| 从江县| 庆云县| 十堰市| 高平市|