91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

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
调兵山市| 达尔| 成都市| 隆昌县| 通山县| 三门县| 阳高县| 溆浦县| 卢龙县| 三亚市| 公安县| 顺义区| 陆丰市| 山东| 交口县| 中牟县| 祥云县| 清水河县| 平定县| 瑞安市| 鸡西市| 凤城市| 闸北区| 建德市| 漠河县| 鄂托克前旗| 华亭县| 溆浦县| 舒兰市| 麦盖提县| 象州县| 京山县| SHOW| 桐梓县| 滦平县| 云南省| 南康市| 镇原县| 分宜县| 梁平县| 宣武区|