| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1409 人关注过本帖
标题:C++标准库算法从小到大排序,sort( s.begin(),s.end(),isShorter )为什么没 ...
只看楼主 加入收藏
令狐少侠56
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:320
专家分:175
注 册:2014-4-10
结帖率:58.18%
收藏
已结贴  问题点数:40 回复次数:2 
C++标准库算法从小到大排序,sort( s.begin(),s.end(),isShorter )为什么没有向isShorter函数传递参数
将字符串按照长短从小到大排序
程序代码:
bool isShorter(   const string &s1, const string &s2    )
{
    return s1.size( ) < s2.size( )  ;
}
int  main(   )
{
    vector<string>  sVec{ "the","quick","red","fox","jumps","over","the","slow","red","turtle" };
    sort(sVec.begin(), sVec.end(), isShorter );
    for (vector<string>::iterator i = sVec.begin(); i != sVec.end(); ++i) {
        cout << *i << "  ";
    }cout << endl;

    return 0;
}

C++标准库算法从小到大排序,sort( s.begin(),s.end(),isShorter )为什么没有向isShorter函数传递参数。
搜索更多相关主题的帖子: 字符串 
2016-11-04 10:18
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:40 
为什么没有向isShorter函数传递参数。
------ 你有什么证据能证明“没有向isShorter函数传递参数”
2016-11-04 10:34
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
这个代码能看懂吗?原理是一模一样的

程序代码:
#include <stdio.h>

bool isShorter( const int& a, const int& b )
{
    return a < b;
}

void sort( int& a, int& b, bool (*comp)(const int&, const int& b) )
{
    if( comp(a,b) )
        return;

    int temp = a;
    a = b;
    b = temp;
}

int  main( void )
{
    int x[] = { 1, 2 };
    sort( x[0], x[1], isShorter );
    printf( "%d %d\n", x[0], x[1] );

    int y[] = { 2, 1 };
    sort( y[0], y[1], isShorter );
    printf( "%d %d\n", y[0], y[1] );

    return 0;
}

2016-11-04 10:42
快速回复:C++标准库算法从小到大排序,sort( s.begin(),s.end(),isShorter )为什 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.089223 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved