C++ Prime学习过程中的细节摘记(二)

最近在学C++,在看C++ Prime(第三版)的过程中把一些零星的知识点记了下来,主要是一些细节问题,便于以后回过头来查阅和巩固。

表达式

       1.复数操作

    * 可以用一个算术数据类型的值初始化一个复数,但不能用一个复数对象初始化算术数据类型(不支持隐式类型转换)。

           * C++支持复数对象的输出,输出包括一个括号,实部和虚部由一个逗号分隔(实部,虚部)

 

       2.sizeof操作符

  * sizeof操作符返回一个size_t类型的值,是一个由具体机器相关的typedef定义的,在csddef头文件中定义

 

       3.new/delete操作符

  * new/delete操作符可以在运行时刻动态分配内存,类似于C语言中的malloc函数和free函数

        * new操作符

                   -分配一个变量 int *p = new int(10);

                  -分配一个数组 int *p = new int[numbers];

          * delete操作符

                   -施放一个变量 delete p;

                   -施放一个数组变量 delete [] p;

 

       4.逗号运算符

              * 逗号表达式运算从左向右进行,最后结果为最右边表达式的值。

 

       5.类型转换

              a.算术类型转换

                     * 算术类型转换一般进行截断处理,会出现精度的丢失,不会进行进位处理

              b.显式类型转换

* C++的显示类型转换称为强制类型转换(cast),包括static_cast, dynamic_cast,const_cast 和 reinterpret_cast

             * 显示类型转换通过 cast-name<type >(expression)格式进行显式类型转化

              c.旧式类型转换

                     * C++类型 type (expression)

                     * C类型 type (expression)

 

3.抽象容器类型

       1.顺序容器

            + vector

            + list

            + deque

 

            选取顺序容器的一些准则

            + 如果需要随机访问一个容器,vector比list好

            + 如果已知存储的元素个数,vector比list好

            + 如果需要不只是在容器两端插入和删除元素,list更好

            + 除非需要在两端插入和删除元素,否则vector比deque好。

 

       2.vector的增长方式

* 为了提高效率,vector并不是随着每一个元素的插入而增长自己,而是当vector需要增长自己时,它实际分配的空间比当前所需的空间要多一些。

 

       3.定义一个顺序容器

              * 每个容器支持一组比较操作符,支持:=, != >, < >=, <=。

       * 容器比较是指两个容器的元素之间成对的比较,如果两个容器的所有元素相等,并且长度相同,则两个容器相同。

              * 如果两个容器不相等,则容器的大小由不相同的那个元素决定。

       4.迭代器

              * 迭代器提供了一种一般化的方法,对顺序或关联容器类型的每一个元素进行连续访问。

       * 每种容器都提供一个begin() 和 end() 成员函数,返回一个iterator

                   -begin() 返回一个指向顺序容器开头的元素的iterator

                   -end() 返回一个指向顺序容器结尾下一个元素的iterator

              * iterator可以进行算术运算,但只适合于vector和deque

              * 容器对象可以由一对begin() 和 end() iterator指向的一段元素初始化


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值