1、模板类的容器map使用时需要注意:当用下标操作符[]来查找某个key值是否存在于map中时,若所查找的元素不在map中,查找结束后会在map中插入所查找的key值,此key值对应的value值被初始化成value所属类型的默认值。如下例:
map<string,int> str_count;
str_count["aaa"]=2;
str_count["bbb"]=3;
if(!str_count["ccc"])
cout<<"ccc not in map"<<endl;
else
cout<<"ccc in map"<<endl;
cout<<str_count["ccc"]<<endl;
以上代码片段执行的结果为:
ccc not in map
0
即第一次在str_count中查找字符串"ccc"之前,map中没有字符串“ccc”,使用下标操作符[]查找的过程中,在map中插入了"ccc"字符串,并且把其对应的value值设置成了0。
2、模板类set中的键是const类型,既只能读,不能写。
3、memcpy函数和memmove函数的区别:前者没有考虑源内存区域和目标内存区域重叠的情况,后者有考虑以上情况。所以假如源内存区域和目标内存区域有重叠,那么memmove肯定可以得到正确的想要的结果,而memcpy不一定能得到正确的结果。
4、cout可以输出数值常量。因此,以下语句:
cout<<123<<endl;
是正确的。输出结果就是就是:123。