关于如何用char*作为map的key值
struct ptrCmp
{
bool operator() (const char* s1, const char* s2) const
{
return strcmp(s1, s2) < 0;
}
};
map<char*,int,ptrCmp> mp;
注意,s1和s2必须是从零开始的,否则你需要改一下比较函数
另外,如果你想手写字符串的快读,你需要每次清空(不能用memset,我也不知道为什么)
比如一个
inline void read(char* s)
{
char c = getchar(); int len = -1;//下标从0开始
while (!isalpha(c)) c = getchar();
while (isalpha(c)) s[++len] = c, c = getchar();
while (s[++len]) s[len] = '\0';
}
一切伟大的行动和思想,都有一个微不足道的开始。
There is a negligible beginning in all great action and thought.
There is a negligible beginning in all great action and thought.