2

不得不说,课堂上交的东西真的太少了,c++整整学了一学期,也只教了一点基本用法,虽然说是说师傅领进门,修行在个人,但能靠课堂上的那点东西就真正入门,我感觉没多少人能办到,幸好加入了潘老师的团队,在老师和学长的帮助下,才真正的了解了一点编程。

今天在完成数据结构的实验时,没什么头绪,就在网上搜了搜,但仿照她写了一下,发现始终不对,开始以为是她用了sort这个我没见过的原因,但是看她的使用方法,以及从网上了解到的这个函数的用法,发现并没错,后来在学长的仔细检查下,发现是一个非常脑残的错误....在此就不多说了,我们的重点是sort函数(感谢朴世超学长的细心检查)

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

总结

专业课的实验还是很有意义的,特别是当自己不会的时候不要沮丧,通过他人的代码能给你很大的提升,包括该语言的高级用法,或者以前没了解的函数,最重要的是对自己思维的开阔。


笙歌会停
1k 声望45 粉丝

代码成就万世基积沙镇海 梦想永在凌云意意气风发