c++使用sort中遇到的问题

C++语言 码拜 4年前 (2016-09-11) 566次浏览
第一个问题:
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


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明c++使用sort中遇到的问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)