Leetcode刷题:
有一些查找的题目,如单词频率统计,移除重复节点等等题目。
总结来说就是,如果你现在需要干的事和前面的数据有关的话,最容易想到的方法就是,一次从头遍历,查找判断,这样的话,时间开销会很大。
但是可以选择使用哈希表,哈希表比其他容器访问速度要快很多,虽然空间消耗大,但也是值得的。
Map:
1.声明:
map<T1, T2> mp;
2.插入
m.insert(pair<T1, T2>(A, B));
m.insert(make_pair(A, B));
m.insert(map<T1, T2>::value_type(A, B));
m[A] = B;
3.查找和统计
(1)查找
find(key);
//查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回mp.end();
map<int, int>::iterator pos = mp.find(3);
if (pos != m.end())
{
cout << "找到了元素 key = " << (*pos).first << " value = " << (*pos).second << endl;
}
else
{
cout << "未找到元素" << endl;
}
-
count(key);
//统计key的元素个数