c++標準庫-lambda&函數對象

lambda

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

using namespace std;

bool compare(int &elem) { return elem % 2; }


int main() {
    vector<int> V;
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        int t;
        cin >> t;
        V.push_back(t);
    }

    int num1 = 10;
    int num2 = 1;
    //lambda表達式[]標識其爲lambda,
    // []內部變量爲標識可訪問外部變量,
    //()爲傳入參數
    //}之後()爲調用函數或者傳入參數
    auto l = [&V, &num2](int num) {
        std::vector<int>::const_iterator Viter = V.begin();
        cout << *(Viter + num2) * num2 << endl;
        return num % 2;
    };
    //vector<int>::iterator it = stable_partition(V.begin(), V.end(), compare);
    //將V序列穩定的按照l這種一元謂詞來進行分區
    vector<int>::iterator it = stable_partition(V.begin(), V.end(), l);
    for (vector<int>::iterator iter = V.begin(); iter != it; iter++)
        cout << *iter << " ";
    cout << endl;
    for (; it != V.end(); it++)
        cout << *it << " ";
    cout << endl;
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章