84669 人が学習中
152542 人が学習中
20005 人が学習中
5487 人が学習中
7821 人が学習中
359900 人が学習中
3350 人が学習中
180660 人が学習中
48569 人が学習中
18603 人が学習中
40936 人が学習中
1549 人が学習中
1183 人が学習中
32909 人が学習中
hash_map<string, list<uint32_t> > g_hmLimits;...list<uint32_t>& lsErrorTime = g_hmLimits[strDomain]; lsErrorTime.clear();为什么返回值是:list<uint32_t>& 类型呢?hash_map中的value存储的是一个list对象,并不是对象的指针,这个时候返回的Value是原来Value的副本吗?
光阴似箭催人老,日月如移越少年。
先强调一点,hash_map不是C++标准库的东西,没有通行的标准,一下所说都是基于C++11的unordered_map而言的。在unordered_map中重载[]操作符的定义为
mapped_type& operator[] ( const key_type& k ); mapped_type& operator[] ( key_type&& k );
可以看到,这里返回的就是引用,所以用引用来接受是没有问题的。
先强调一点,hash_map不是C++标准库的东西,没有通行的标准,一下所说都是基于C++11的unordered_map而言的。
在unordered_map中重载[]操作符的定义为
可以看到,这里返回的就是引用,所以用引用来接受是没有问题的。