POJ1007 关于STL排序方法 动态数组的创建 和向量的使用
尽量用向量 数组不好用
#include<iostream>
#include<string>
#include <algorithm>
#include<vector>
using namespace std;
class SeqString
{
int seq;
string str;
public :
SeqString(string &str1)
{
str=str1;
}
SeqString()
{
}
int getMeasure()
{
int count=0;
for(int i=0;i<str.length();i++)
{
for(int j=i;j<str.length();j++)
{
if(str[i]>str[j])count++;
}
}
seq=count;
return count;
}
void setStr(string str1)
{
str=str1;
seq=getMeasure();
}
int getSeq()
{
return getMeasure();
}
string getString()
{
return str;
}
};
bool compare(SeqString &left,SeqString &right){return left.getSeq()<right.getSeq();}//compare 接口
void output(SeqString seq[],int n)
{
for(int i=0;i<n;i++)
cout<<seq[i].getString()<<endl;
};
int main()
{
int times,length;
string str;
cin>>length>>times;
SeqString *seq=new SeqString[times];//动态的创建数组
for(int i=0;i<times;i++)
{
cin>>str;
seq[i].setStr(str);
// cout<<seq[i].getSeq()<<endl;
}//数据都已存入数据结构中 如何排序
//output(seq,times);
vector<SeqString> myvector (seq,seq+times);//向量和数组之间的转换
sort(myvector.begin(),myvector.end(),compare);//排序方法s
for(int i=0;i<times;i++)
{
cout<<myvector[i].getString()<<endl;
}
/*
string input;
cin>>input;
SeqString seqstr(input);
cout<<input<<endl;
cout<<seqstr.getSeq()<<endl;
*/
system("PAUSE");
return 0;
}