C++中不太注意的一些小知识点

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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值