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;
}

posted @ 2011-04-02 09:42  SangS  阅读(349)  评论(0编辑  收藏  举报