| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 445 人关注过本帖
标题:新手关于 sort()函数的问题
只看楼主 加入收藏
wu3097857312
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2012-8-14
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:3 
新手关于 sort()函数的问题
#include<iostream>
#include<algorithm>
using namespace std;
bool compare(char a,char b)
{
    return a<b;
}
int main()
{
    char a[20]={'a','c','b','e','d'}; int i;
    sort(a,a+5,compare);
    for(i=0;i<5;i++)
        cout<<a[i]<<" ";
    cout<<endl;
    return 0;
}
这是看到有人用sort()函数就研究了下,结构体也自己编了个。就是对结构体里面的2种数据比较成功,比如一个学生姓名和分数的结构体,在名字相同时对分数排名。请大教下,因为是新手,希望大家有代码容易理解,同时对这种排序有其他数据类型的运用,也说明下。
搜索更多相关主题的帖子: compare 结构体 return include 
2012-09-15 18:04
寒风中的细雨
Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17
等 级:贵宾
威 望:66
帖 子:1710
专家分:8645
注 册:2009-9-15
收藏
得分:7 
程序代码:
// alg_sort.cpp
// compile with: /EHsc
#include <vector>
#include <algorithm>
#include <functional>      // For greater<int>( )
#include <iostream>

// Return whether first element is greater than the second
bool UDgreater ( int elem1, int elem2 )
{
   return elem1 > elem2;
}

int main( )
{
   using namespace std;
   vector <int> v1;
   vector <int>::iterator Iter1;

   int i;
   for ( i = 0 ; i <= 5 ; i++ )
   {
      v1.push_back( 2 * i );
   }

   int ii;
   for ( ii = 0 ; ii <= 5 ; ii++ )
   {
      v1.push_back( 2 * ii + 1 );
   }

   cout << "Original vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   sort( v1.begin( ), v1.end( ) );
   cout << "Sorted vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   // To sort in descending order. specify binary predicate
   sort( v1.begin( ), v1.end( ), greater<int>( ) );
   cout << "Resorted (greater) vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;

   // A user-defined (UD) binary predicate can also be used
   sort( v1.begin( ), v1.end( ), UDgreater );
   cout << "Resorted (UDgreater) vector v1 = ( " ;
   for ( Iter1 = v1.begin( ) ; Iter1 != v1.end( ) ; Iter1++ )
      cout << *Iter1 << " ";
   cout << ")" << endl;
}
2012-09-17 18:50
peach5460
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:武汉
等 级:贵宾
威 望:30
帖 子:2780
专家分:6060
注 册:2008-1-28
收藏
得分:7 
sort知识stl里面封装的一个算法
你想知道什么?

我总觉得授人以鱼不如授人以渔...
可是总有些SB叫嚣着:要么给代码给答案,要么滚蛋...
虽然我知道不要跟SB一般见识,但是我真的没修炼到宠辱不惊...
2012-09-18 12:37
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:7 
以下是引用peach5460在2012-9-18 12:37:59的发言:

sort知识stl里面封装的一个算法
你想知道什么?

他也许是想知道 sort 的第二个参数应该怎么使,或者怎么实现。
2012-09-18 18:37
快速回复:新手关于 sort()函数的问题
数据加载中...
 
   



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

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