Chinaunix首页 | 论坛 | 博客
  • 博客访问: 159930
  • 博文数量: 30
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-25 19:05
文章分类

全部博文(30)

文章存档

2009年(3)

2008年(27)

我的朋友

分类: C/C++

2008-12-05 13:46:29

    下面的程序将从文件1.txt中读入数据,把数据按照从大到小的顺序依次输出。
    用到的是STL中的sort()函数。这个函数默认情况是按照升序排列的,通过改变谓语动词,可以实现自定义顺序输出。
 

#include<iostream>
#include<string>
#include<fstream>
#include <algorithm>
#include<sstream>
#include <vector>
using namespace std;
ifstream & open_file(ifstream& in, string name){
    in.close();
    in.clear();
    in.open(name.c_str());
    return in;
}
bool gr(int a, int b){//谓语动词函数
    return a>b;
}
int main(){
    ifstream if1;
    if(!open_file(if1,"1.txt")){cout<<"failed open 1.txt"<<endl; return 0;}
    int number;
    vector<int> dat;
    while (if1>>number)
        dat.push_back(number);
    
    sort(dat.begin(),dat.end(),gr);//gr是谓语动词,其实就是一个函数名
    
    vector<int>::iterator it=dat.begin();
    while (it!=dat.end()){
        cout<<*it<<endl;        
        ++it;    
    }    
    return 0;
}

阅读(1128) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~