C++ Primer Plus第6版重点笔记

之前看《C++ Primer Plus》第6版这本书后所做的笔记,先开始复习,整理出来。

1.C++的const比C语言#define更好的原因?

首先,它能够明确指定类型,有类型检查功能。
其次,可以使用C++的作用域规则将定义限制在特定的函数或文件中。
第三,可以将const用于更复杂的类型,比如数组和结构。

C语言中也有const,其与C++中const的区别是:一是作用域规则不同;另一个是,在C++中可以用const值来声明数组长度。 

2.为什么说前缀++/--比后缀++/--的效率高? 

对于内置类型和当代的编译器而言,这看似不是什么问题。然而,C++允许您针对类定义这些运算符,在这种情况下,用户这样定义前缀函数:将值加1,然后返回结果;但后缀版本首先复制一个副本,将其加1,然后将复制的副本返回。因此,对于类而言,前缀版本的效率比后缀版本高。
总之,对于内置类型,采用哪种格式不会有差别,但对于用户定义的类型,如果有用户定义的递增和递减运算符,则前缀格式的效率更高。

3.逗号运算符

到目前为止,逗号运算符最常见的用途是将两个或更多的表达式放到一个for循环表达式中。逗号运算符的特性有下面几个:

它确保先计算第一个表达式,然后计算第二个表达式;
i = 20, j = 2 * i; // i set to 20, then j set to 40

逗号表达式的值是第二部分的值。例如,上面表达式的值为40。

在所有运算符中,逗号运算符的优先级是最低的。例如:
cats = 17, 240;
被解释为:
(cats = 17), 240;
也就是说,将cats设置为17,后面的240不起作用。如果是cats = (17, 240);那么cats就是240了。

 4.快排中中值的选取:

将元素每5个一组,分别取中值。在n/5个中值里面找到中值,作为partition的pivot。
为什么*不每3个一组?保证pivot左边右边至少3n/10个元素,这样最差O(n)。

5.C++存储方案:C++三种,C++11四种

自动存储持续性

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值