第一个问题:
STL中comp函数究竟是什么意思?传过去的参数是做什么的?查百度看高手的解释终究还是没看明白。恕本人愚笨,希望通俗一些。
第二个问题:
在comp自定义的函数中使用传值与传址有区别吗?
如代码:
STL中comp函数究竟是什么意思?传过去的参数是做什么的?查百度看高手的解释终究还是没看明白。恕本人愚笨,希望通俗一些。
第二个问题:
在comp自定义的函数中使用传值与传址有区别吗?
如代码:
#include <iostream> #include <math.h> #include <cstring> /* 字符处理库 */ #include <iomanip> /* setw(行宽) */ #include <algorithm>/* sort排序 */ #include <cstdio> using namespace std; bool comp(int &a,int &b); int main(){ int arr[11]={2,4,1,23,5,76,0,43,24,0}; int len = sizeof(arr) / sizeof(int);//这里的int是表示什么呢? sort(arr, arr+len,comp); for (int i = 0; i<len; i++) { cout<<arr[i]<<" "; } } bool comp(int &a,int &b){//这里假如bool comp(int a,int b) 这两种写法有什么区别吗?这里的a,b都是表示什么?算法书上没有解释这些 if(a<b) return true; else return false; }
望高手给予解答,感激不尽!
解决方案
15
comp中的值没有区别;这里不改变参数的值,所以传值和指针都一样;
20
传参, 或传变量的引用得到的结果是一样!但是建议你这样使用 bool cmp (const int &a, const int &b);
防止误操作,导致变量被改变!
防止误操作,导致变量被改变!
15