65,210
社区成员
发帖
与我相关
我的任务
分享 #include <iostream>
#include<string>
#include<vector>
using namespace std;
class Assoc{
struct Pair{
string name;
double val;
Pair(string n="",double v=0):name(n),val(v){}
};
vector<Pair> vec;
Assoc (const Assoc &);
Assoc &operator =(const Assoc&);
public:
Assoc(){}
const double & operator []( const string &);
double & operator [](string &);
void print_all() const;
};
const double & Assoc::operator[]( const string &s)
{
for(vector<Pair>::const_iterator p=vec.begin();p!=vec.end();++p)
if(s==p->name) return p->val;
vec.push_back(Pair(s,0));
return vec.back().val;
}
void Assoc::print_all() const
{ for(vector <Pair>::const_iterator p= vec.begin();p!=vec.end();p++)
cout<<p->name<<" : "<<p->val<<endl;
}
int main()
{ string buf;
Assoc vec;
while(cin>>buf) vec[buf]++ ;;
vec.print_all();
return 0;
}