/**
getline(int,s)为从输入文件流中读入一行数据,放入string变量s中.
由于整行地读入,读入到s中时,文件中的每个换行符都丢掉了.
*/
//istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
运行环境: C++Builder6
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
#include<iostream>
#include<fstream>
#include<sstream>
#include<vector>
using namespace std;
vector<vector<int> > input();
void mySort(vector<vector<int>>& a);
void print(constvector<vector<int> >& a);
int main(int argc, char* argv[])
{
//创建一个二维向量
vector<vector<int> > a =input();
//对向量进行排序
mySort(a);
print(a);
system("pause");
return 0;
}
//---------------------------------------------------------------------------
/**
初始化向量
*/
vector<vector<int> > input(){
ifstream in("aaa.txt");
vector<vector<int> > a;
/**
getline(int,s)为从输入文件流中读入一行数据,放入string变量s中.
由于整行地读入,读入到s中时,文件中的每个换行符都丢掉了.
*/
for(string s; getline(in, s);){
vector<int> b;
//istringstream对象可以绑定一行字符串,然后以空格为分隔符把该行分隔开来。
istringstream sin(s);
for(int ia; sin>>ia;){
b.push_back(ia);
}
a.push_back(b);
}
return a;
}
//---------------------------------------------------------------------------
void mySort(vector<vector<int>>& a){
for(int pass = 1; pass<a.size();pass++){
for(int i=0; i<a.size()-pass; i++){
if(a[i+1].size()<a[i].size()){
a[i].swap(a[i+1]);
}
}
}
}
//---------------------------------------------------------------------------
void print(constvector<vector<int> >& a){
for(int i=0; i<a.size(); i++){
for(int j=0;j<a[i].size(); j++){
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}