zoukankan      html  css  js  c++  java
  • STL中的nth_element()方法的使用

    STL中的nth_element()方法的使用 通过调用nth_element(start, start+n, end)
    方法可以使第n大元素处于第n位置(从0开始,其位置是下标为
    n的元素),并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,但不能保证他们是有序的,下面是这个方法的具体使用方法.

     1 #include <iostream>
     2 
     3 #include <algorithm>
     4 
     5 #include <functional>
     6 
     7 #include <vector>
     8 
     9 using namespace std;
    10 
    11 
    12 
    13 int main()
    14 
    15 {
    16 
    17     const int VECTOR_SIZE = 50 ;
    18 
    19 
    20 
    21     vector<int> Numbers(VECTOR_SIZE) ;
    22 
    23 
    24 
    25     vector<int>::iterator start, end, it ;
    26 
    27 
    28 
    29     // Initialize vector Numbers
    30 
    31     for(int i=0;i<50;++i){
    32 
    33              Numbers[i]=i;
    34 
    35     }
    36 
    37 /*由于赋值时是有序的,下面random_shuffle()方法将这些数据的顺序打乱*/
    38 
    39     random_shuffle(Numbers.begin(),Numbers.end());
    40 
    41     
    42 
    43 // location of first element of Numbers
    44 
    45     start = Numbers.begin() ; 
    46 
    47 
    48 
    49  // one past the location last element of Numbers
    50 
    51     end = Numbers.end() ;     
    52 
    53 
    54 
    55     cout << "Before calling nth_element/n" << endl ;
    56 
    57 
    58 
    59   // print content of Numbers
    60 
    61     cout << "Numbers { " ;
    62 
    63     for(it = start; it != end; it++)
    64 
    65         cout << *it << " " ;
    66 
    67     cout << " }/n" << endl ;
    68 
    69 
    70 
    71   /* 
    72 
    73     * partition the elements by the 8th element,
    74 
    75   *(notice that 0th is the first element)
    76 
    77   */ 
    78 
    79     nth_element(start, start+8, end) ;
    80 
    81 
    82 
    83     cout << "After calling nth_element/n" << endl ;
    84 
    85 
    86 
    87     cout << "Numbers { " ;
    88 
    89     for(it = start; it != end; it++)
    90 
    91         cout << *it << " " ;
    92 
    93     cout << " }/n" << endl ;
    94 
    95     system("pause");
    96 
    97 }
  • 相关阅读:
    DataGridView中绑定List泛型的问题 [轉]
    .NET 導入EXCEL後數值型toString會變成空問題
    Linq連接List時多值時使用方法
    SQL2008报表三种实现Reporting Service2008匿名访问的方法(转)
    IIS7 WCF HTTP 错误 404.3 Not Found
    sql2005取得TABLE主鍵及欄位名稱,說明
    MSSQL禁用/啟用TRIGGER
    IE6下a:hover span失效问题(转载)
    asp.ner上传文件限制(转载)
    css优先级(转载)
  • 原文地址:https://www.cnblogs.com/ECJTUACM-873284962/p/6741498.html
Copyright © 2011-2022 走看看