日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

STL nth_element

發布時間:2023/11/27 生活经验 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STL nth_element 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nth_element(first,nth,last)

first,last 第一個和最后一個迭代器,也可以直接用數組的位置。?
nth,要定位的第nn?個元素,能對它進行隨機訪問.

將第n_thn_th?元素放到它該放的位置上,左邊元素都小于它,右邊元素都大于它.

測試代碼:

http://www.cplusplus.com/reference/algorithm/nth_element/

// nth_element example
#include <iostream>     // std::cout
#include <algorithm>    // std::nth_element, std::random_shuffle
#include <vector>       // std::vectorbool myfunction (int i,int j) { return (i<j); }int main () {std::vector<int> myvector;// set some values:for (int i=1; i<10; i++) myvector.push_back(i);   // 1 2 3 4 5 6 7 8 9std::random_shuffle (myvector.begin(), myvector.end());// using default comparison (operator <):std::nth_element (myvector.begin(), myvector.begin()+3, myvector.end());// using function as compstd::nth_element (myvector.begin(), myvector.begin()+3, myvector.end(),myfunction);// print out content:std::cout << "myvector contains:";for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)std::cout << ' ' << *it;std::cout << '\n';return 0;
}

輸出:

myvector contains: 3 1 4 2 5 6 9 7 8

也就是找到第4大的數,但是左右兩側不一定排序

nth_element特別適合找中位數

 std::nth_element(_vec.begin(), _vec.begin() + n - 1, _vec.end());

?

總結

以上是生活随笔為你收集整理的STL nth_element的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。