亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

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
九江县| 静海县| 威宁| 讷河市| 黄骅市| 平凉市| 广东省| 青阳县| 山阳县| 东明县| 万源市| 冀州市| 万安县| 永胜县| 阿克苏市| 克山县| 光泽县| 龙南县| 胶州市| 华安县| 茌平县| 徐汇区| 龙泉市| 芮城县| 玉树县| 岱山县| 邮箱| 宝兴县| 乐安县| 永和县| 咸宁市| 温州市| 兴义市| 灌云县| 张家界市| 开鲁县| 临澧县| 定日县| 衡阳市| 阿克陶县| 宁晋县|