00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00019
00020 #ifndef _StringTools_hpp
00021 #define _StringTools_hpp
00022
00023 #include<map>
00024 #include<list>
00025
00026
00027
00028
00029 typedef map< string, string, less<string > > StrMap;
00030 typedef StrMap::value_type StrMapVT;
00031 typedef map< string, int, less<string > > StrIntMap;
00032 typedef StrIntMap::value_type StrIntMapVT;
00033
00034
00036
00038 class StrStr : public StrMap
00039 {
00040 public:
00041 void Set(string s,string val)
00042 {
00043 StrMap::iterator it=(*this).find(s);
00044 if(it==(*this).end()){this->insert(value_type(s,val));}
00045 else{(*it).second=val;}
00046 }
00047 const string operator [] (const string &str) const
00048 {
00049 StrMap::const_iterator it=(*this).find(str);
00050 if(it==(*this).end()){return string();}
00051 return (*it).second;
00052 }
00053 };
00054
00055 #endif // _StringTools_hpp