这是我的代码:
map<string, int> mp; string s; int n = 0; while(cin >> s) { if(mp.find(s) == mp.end()) { mp.insert(make_pair(s, n++)); } }
这是实现我想要的目标的最好方法吗?还是有更优雅、更时尚的解决方案?提前谢谢
在插入之前,不需要检查该键上是否有元素,因为 insert 如果密钥已经存在,则不改变映射值。你不需要单独记录计数,你可以打电话给 size() 要获取下一个值:
insert
size()
while (std::cin >> s) { mp.insert(std::make_pair(s, mp.size())); }