您的位置:首页 > 其它

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

2017-11-11 23:55 274 查看
/*
*   @ 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;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  stl