123789456ye

已AFO

关于如何用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';
}
posted @ 2020-03-02 15:52  123789456ye  阅读(690)  评论(0编辑  收藏  举报