/*在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b.没有则返回'#'*/
#include <map>
#include <string>
using namespace std;
char FindFirstOneTime(const string &str)
{
char result = '#';
map<char,int> map; //考虑到字符串长度未必巨大,故使用map,使用hash_map亦可.
for_each(str.begin(),str.end(),[&map](char value) //C++11 lambda表达式
{
++map[value];
});
for(auto value : str) //C++11参数推导
{
if(map[value] == 1)
{
result = value;
break;
}
}
return result;
}