c++ sort函數

不得不說,課堂上交的東西真的太少了,c++整整學了一學期,也只教了一點基本用法,雖說是說師傅領進門,修行在我的,但能靠課堂上的那點東西就真正入門,我感受沒多少人能辦到,幸虧加入了潘老師的團隊,在老師和學長的幫助下,才真正的瞭解了一點編程。ios

今天在完成數據結構的實驗時,沒什麼頭緒,就在網上搜了搜,但仿照她寫了一下,發現始終不對,開始覺得是她用了sort這個我沒見過的緣由,可是看她的使用方法,以及從網上了解到的這個函數的用法,發現並沒錯,後來在學長的仔細檢查下,發現是一個很是腦殘的錯誤....在此就很少說了,咱們的重點是sort函數(感謝樸世超學長的細心檢查)c++

sort基本用法

sort函數是頭文件algorithm中的函數,它的做用就是給必定範圍內的數組排序,下面是官方文檔中的介紹編程

clipboard.png

// sort algorithm example
#include <iostream>     // std::cout
#include <algorithm>    // std::sort
#include <vector>       // std::vector

bool myfunction (int i,int j) { return (i<j); }

struct myclass {
  bool operator() (int i,int j) { return (i<j);}
} myobject;

int main () {
  int myints[] = {32,71,12,45,26,80,53,33};
  std::vector<int> myvector (myints, myints+8);               // 32 71 12 45 26 80 53 33

  // using default comparison (operator <):
  std::sort (myvector.begin(), myvector.begin()+4);           //(12 32 45 71)26 80 53 33

  // using function as comp
  std::sort (myvector.begin()+4, myvector.end(), myfunction); // 12 32 45 71(26 33 53 80)

  // using object as comp
  std::sort (myvector.begin(), myvector.end(), myobject);     //(12 26 32 33 45 53 71 80)

  // 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;
}

上面就是該函數的用法,很簡單,可是很實用。數組

總結起來就是:
sort函數根據comp函數的返回值,對comp函數的兩個參數排序。
若是comp返回true,排序爲「參數1」「參數2」,不然排序爲「參數2」「參數1」。
想要升序排列,則return parameter1<parameter2
想要降序排列,則return parameter1>parameter2數據結構

總結

專業課的實驗仍是頗有意義的,特別是當本身不會的時候不要沮喪,經過他人的代碼能給你很大的提高,包括該語言的高級用法,或者之前沒了解的函數,最重要的是對本身思惟的開闊。函數

相關文章
相關標籤/搜索