c++ unorder_map的find函数与count函数的区别

c++ unorder_map的find函数与count函数的区别

  1. find函数

unorder_map中的find函数是查找key所对应的value的位置(迭代器)。

  • 若存在,则返回key所对应的value的迭代器,通过it->fisrt和it->second来获取键和值;
  • 所不存在,则返回unorder_map::end。
unordered_map<char, int>mp1{ {'a',1},{'b',2},{'c',3} };
char c = 'a';
char d = 'd';
unordered_map<char, int>::iterator it;

it = mp1.find(c);
if (it == mp1.end())
	cout << "not found" << endl;
else
	cout << it->first << "  " << it->second << endl;
	
it = mp1.find(d);
if (it == mp1.end())
	cout << "not found" << endl;
else
	cout << it->first << "  " << it->second << endl;

结果:
c++ unorder_map的find函数与count函数的区别_第1张图片

2.count函数

unorder_map中的count函数是返回key对应的value的个数的。

  • 由于unorder_map中没有相同的键,所以count函数的结果为:若有key为1,若没有key则为0。
unordered_map<char, int>mp1{ {'a',1},{'b',2},{'c',3} };
char c = 'a';
char d = 'd';
cout << mp1.count(c) << endl;
cout << mp1.count(d) << endl;

结果:
c++ unorder_map的find函数与count函数的区别_第2张图片

补充:在map中,find函数与count函数的用法一样。

你可能感兴趣的:(算法,c++,c++,算法,哈希表)