求助大神C++问题,小弟初学,请多多指教。

在文件abc.txt中存在一些C串,每串占一行,读入这些C串并使用STL的sort算法进行字典排序,然后输出。如有需要,可以定义比较函数,作为函数指针参数。代码如下:#i... 在文件abc.txt中存在一些C串,每串占一行,读入这些C串并使用STL的sort算法进行字典排序,然后输出。如有需要,可以定义比较函数,作为函数指针参数。代码如下:

#include<iostream>
#include<fstream>
#include<sstream>
#include<vector>
#include<algorithm>
using namespace std;
typedef vector< vector<char> > VVC;
VVC input();//输入函数
void mysort(VVC& a);//排序函数
void print(const VVC& a);//输出函数
bool cmp(vector<char> x,vector<char> y);//作为sort()函数指针参数的比较函数
vector<char> max(vector<char> x,vector<char> y);
int main(){
VVC a=input();
mysort(a);
print(a);
return 0;
}
VVC input(){//二维向量读入
ifstream in("abc.txt");
VVC a;
for(string s; getline(in,s); ){
vector<char> b;
istringstream sin(s);
for(int ia; sin>>ia; )
b.push_back(ia);
a.push_back(b);
}
return a;
}
void mysort(VVC& a){//调用sort()函数排序
sort(a.begin(),a.end(),cmp);
}
void print(const VVC& a){
for(int i=0; i<a.size(); ++i){
for(int j=0; j<a[i].size(); ++j)
cout<<a[i][j];
cout<<endl;
}
}
bool cmp(vector<char> x,vector<char> y){//作为函数指针的函数
for(int i=0; i<max(x,y).size(); ++i){
if(x[i]<y[i])
return 1;
}
return 0;
}
vector<char> max(vector<char> x,vector<char> y){
if(x.size()>y.size())
return y;
else
return x;
}
展开
 我来答
天澎0FN
2012-09-26
知道答主
回答量:62
采纳率:0%
帮助的人:26万
展开全部
结果是什麼
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sting_浅
2012-09-23
知道答主
回答量:23
采纳率:0%
帮助的人:17.8万
展开全部
你这有什么问题?
更多追问追答
追问
只输出回车,读入失败估计。不知道哪里有问题。
追答
#include
#include
#include
#include
#include
#include
using namespace std;
typedef vector > VVC;
VVC input();//输入函数
void mysort(VVC& a);//排序函数
void print(const VVC& a);//输出函数
bool cmp(vector x,vector y);//作为sort()函数指针参数的比较函数
vector max(vector x,vector y);
int main()
{
VVC a=input();
mysort(a);
print(a);
system("pause");
return 0;
}
VVC input()
{//二维向量读入
ifstream in("abc.txt");
VVC a;
for(string s; getline(in,s); )
{
vector b;
/*istringstream sin(s);
for(int ia; sin>>ia; )
{
b.push_back(ia);
}
a.push_back(b);*/

for(string::size_type i = 0;i x,vector y)
{//作为函数指针的函数
for(int i=0; i max(vector x,vector y)
{
if(x.size()>y.size())
{
return y;
}
else
{
return x;
}
}

运行正确,你看看可以不,有一点没看懂你要做什么?
istringstream sin(s);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式