C++ STL 排序查找最大的5个

#include <iostream>
#include <algorithm>
#include <deque>
#include <vector>
#include <functional>
#include <iterator>

using namespace std;


int main()
{
  deque<int> deq1;
  deque<int>::iterator deq_iter1;

  for (int k=0;k<16;k++)
  {
    deq1.push_back(rand());
  }

  for (deq_iter1 = deq1.begin();deq_iter1 != deq1.end();++deq_iter1)
  {
    cout << *deq_iter1 << " ";
  }
  cout << endl;
  cout << "------------------------------"<<endl;

  nth_element(deq1.begin(), deq1.begin() + 5, deq1.end());
  for (deq_iter1 = deq1.begin(); deq_iter1 != deq1.end(); ++deq_iter1)
  {
    cout << *deq_iter1 << " ";
  }
  cout << endl;
  cout << "------------------------------" << endl;

  
  copy(deq1.begin(), deq1.begin() + 5,ostream_iterator<int>(cout," "));
  cout << endl;
  cout << "------------------------------" << endl;


  nth_element(deq1.begin(), deq1.end() - 5, deq1.end());
  copy(deq1.end() - 5,deq1.end(), ostream_iterator<int>(cout, " "));
  cout << endl;
  cout << "------------------------------" << endl;

  system("pause");
  return 0;
}

=====================================

41 18467 6334 26500 19169 15724 11478 29358 26962 24464 5705 28145 23281 16827 9961 491
------------------------------
41 491 5705 6334 9961 11478 15724 16827 18467 19169 23281 24464 26500 26962 28145 29358
------------------------------
41 491 5705 6334 9961
------------------------------
24464 26500 26962 28145 29358
------------------------------
请按任意键继续. . .

 

posted @ 2019-06-12 21:29  西北逍遥  阅读(434)  评论(0编辑  收藏  举报