STL算法-归并和最大最小值算法

/*
    *   @ merge
    *   @ 将两个排序好的的集合归并,并保持排序顺序
    *   @
    */

    vector<int> vecOne = { 32,26,54,78,92 };
    vector<int> vecTwo = { 26,48,4,25,36 };
    vector<int> vecRes(vecOne.size() + vecTwo.size());

    sort(vecOne.begin(), vecOne.end());
    sort(vecTwo.begin(), vecTwo.end());

    merge(vecOne.begin(), vecOne.end(), vecTwo.begin(), vecTwo.end(), vecRes.begin());

    for_each(vecRes.begin(), vecRes.end(), [](int i) {cout << i << " "; });
    cout << endl;

    /*  @ 最大值和最小值比较算法
    *   @----------------不支持迭代器----------------
    *   @ max()     返回对个数中的最大值的常引用
    *   @ min()     返回多个数中的最小值的常引用
    *   @ minMax()  返回一个pair fist存放最小值,second存放最大值
    *   @ --------------支持迭代器------------------
    *   @ min_element() 返回集合中的最小值
    *   @ max_element() 返回集合中的最大值
    *   @ minmax_element()  返回一个pair fist存放最小值迭代器,second存放最大值迭代器
    */

    cout << max({ 15, 20, 31, 12, 5, 6, 8, 9 })<<endl;
    cout << min({ 15, 20, 31, 12, 5, 6, 8, 9 })<<endl;
    pair<int, int> res = minmax({ 15, 20, 31, 12, 5, 6, 8, 9 });
    cout << "Min is " << res.first << endl;
    cout << "Max is " << res.second << endl;

    vector<int> vecTemp = { 15, 20, 31, 12, 5, 6, 8, 9 };

    auto result = max_element(vecTemp.cbegin(), vecTemp.cend());
    cout <<"Max : "<<*result  << endl;
    cout <<"Min : " <<*min_element(vecTemp.cbegin(), vecTemp.cend()) << endl;
    auto res1 = minmax_element(vecTemp.cbegin(), vecTemp.cend());
    cout << "Min is " << res.first << endl;
    cout << "Max is " << res.second << endl;

猜你喜欢

转载自blog.csdn.net/timeinsist/article/details/78509613