STL_算法_根据第n个元素排序(nth_element)
来源:互联网 发布:大型网络3d游戏 编辑:程序博客网 时间:2024/06/12 22:27
C++ Primer 学习中。。。
简单记录下我的学习过程 (代码为主)
//所有容器适用
nth_element(b,n,e)
nth_element(b,n,e,p)
对比:partition()算法
/**------http://blog.csdn.net/u010579068------**/#include<iostream>#include<cstdio>#include<string>#include<vector>#include<list>#include<functional>#include<deque>#include<algorithm>using namespace std;/*****************************************//所有容器适用nth_element(b,n,e)nth_element(b,n,e,p)对比:partition()算法*****************************************//**--------------------------------------------------------------------------------------------------------------------------------------------------------------------**//*************************************************************************************std::nth_element 所有排序容器适用 algorithm--------------------------------------------------------------------------------------template <class RandomAccessIterator> void nth_element ( RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last );template <class RandomAccessIterator, class Compare> void nth_element ( RandomAccessIterator first, RandomAccessIterator nth, RandomAccessIterator last, Compare comp );//eg:*************************************************************************************/bool myfunction (int i,int j){ return (i>j);}int main (){ int m[]= {3,4,5,6,7,2,3,4,5,6,1,2,3,4,5}; vector<int> myvector(m,m+15); vector<int>::iterator it;// set some values:// for (int i=1; i<10; i++) myvector.push_back(i); // 1 2 3 4 5 6 7 8 9// random_shuffle (myvector.begin(), myvector.end()); cout << "myvector contains:(原始数据)"; for (it=myvector.begin(); it!=myvector.end(); ++it) cout << " " << *it; cout << endl;// using default comparison (operator <):// cout<<*(myvector.begin()+3)<<endl; nth_element (myvector.begin(), myvector.begin()+3, myvector.end()); cout << "myvector contains:(从小到大)"; for (it=myvector.begin(); it!=myvector.end(); ++it) cout << " " << *it; cout << endl;// using function as comp// cout<<*(myvector.end()-4)<<endl;// nth_element (myvector.begin(), myvector.begin()+3, myvector.end(),myfunction); nth_element (myvector.begin(), myvector.end()-4, myvector.end(),greater<int>()); // print out content: cout << "myvector contains:(从大到小)"; for (it=myvector.begin(); it!=myvector.end(); ++it) cout << " " << *it; cout << endl; return 0;}
0 0
- STL_算法_根据第n个元素排序(nth_element)
- STL_算法(29)_根据第n个元素排序
- C++ STL 算法:根据第n个元素排序
- STL算法 ------ 根据第n个元素排序
- STL_算法_对所有元素排序(sort、stable_sort)
- 【算法】第 n 小数 nth_element
- STL_算法_元素计数(count、count_if)
- STL_算法_复制元素(copy、copy_backward)
- STL_算法_局部排序(partial_sort、partial_sort_copy)
- STL_算法(28)_局部排序
- nth_element-第n小数
- STL_算法(16)_复制元素 copy() copy_backward()
- STL之*min_element , *max_element ,*nth_element()[取容器中最大元素 最小元素 第n元素]
- STL_算法(22)_ STL_算法_替换算法
- STL_算法(21)_ STL_算法_填充新值
- STL_算法_交换(swap_ranges)
- STL_算法(27)_对所有元素排序sort(b, e) sort(b, e, p) stable_sort(b, e) stable_sort(b, e, p)
- 排序算法nth_element()和partition()
- js 方法的动态调用 apply的用法
- iOS [[UIDevice currentDevice] systemName]的返回值
- 初遇Express(小demo)
- Android NDK生成so文件
- 第五章第二节-spring注入属性
- STL_算法_根据第n个元素排序(nth_element)
- [Leetcode]146. LRU Cache @python
- Android手机实时视频监控
- perl AnyEvent
- 对称加密和分组加密中的四种模式(ECB、CBC、CFB、OFB)
- Android listview获取滚动的距离
- cannot set user id Resource temporarily unavailable故障解决
- HTML5 代码实例
- Swift学习第一天