//找出一个字符串中从头到尾不重复的第一个字符,如“aab”,是‘b’ #include <map> #include <iostream> #include <string> #define _DEBUG int main() { using namespace std; string str; cout<<"请输入一个字符串:"<<endl; cin>>str; #ifdef _DEBUG for (string::iterator its=str.begin();its!=str.end();++its) { cout<<*its<<" "; } cout<<endl; #endif // _DEBUG map<char,int> mp; for (string::iterator its=str.begin();its!=str.end();++its) { ++mp[*its];//不存在则插入,下标操作,并计数 } #ifdef _DEBUG for (map<char,int>::iterator itm=mp.begin();itm!=mp.end();++itm) { cout<<itm->first<<": "<<itm->second<<endl; } cout<<endl; #endif // _DEBUG string::iterator its=str.begin(); // map<char,int>::iterator itm=mp.begin(); while (true) { if (its==str.end()) { cout<<"没有符合条件的字母!!"<<endl; break; } if (mp[*its]==1) { cout<<"符合条件的字母是:"<<*its<<endl; break; } ++its; } return 0; }