- 博客(8)
- 资源 (2)
- 收藏
- 关注
原创 《C++ Primer(第5版)》习题答案
第1章 开始练习1.1查阅你使用的编译器的文档,确定它所使用的命名约定。编译并运行第2页的main程序。略练习1.2改写程序,让它返回-1。返回值-1通常被当作程序错误的标识。重新编译并运行你的程序,观察你的系统如何处理main返回的错误标识。练习1.3编写程序,在标准输出上打印Hello, World。#include int main (void
2017-11-30 12:44:00 8401
原创 C++强制类型转换
旧式的强制类型转换格式有两种:type (expr);//函数形式的强制类型转换(type) expr;//C语言风格的强制类型转换 C++提供了四种新的强制类型转换,其格式为:cast-name<type>(expression) type是转换的目标类型而expression是要转换的值。如果type是引用类型,则结果是左值。本文只介绍除dyn...
2017-11-30 12:29:01 392
原创 C++运算符
C++的算术运算符有一元正号或加法+、一元负号或减法-、乘法*、除法/、求余%算术运算符中,一元运算符优先级最高,其次是乘法和除法,优先级最低的是加法和减法。C++的算术运算符都满足左结合律,意味着当优先级相同时,按照从左向右的顺序进行组合。算术运算符的运算对象和求值结果都是右值。在表达式求值前,小整数类型的运算对象被提升成较大的整数类型,所有运算对象最终都会转换成同一类型。一元正号运
2017-11-16 23:01:53 807
原创 标准库函数begin和end
在C++05中对于string类和各种容器类(如vector等)添加了T.begin()和T.end()两个成员函数,分别返回指向首元素的迭代器和尾后元素的迭代器。但是对于复合类型数组却一直只能用指针和数组元素地址来实现。以遍历输出数组为例:int a[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};int *b = &a[0], *e = &a[10];//数组a
2017-11-16 16:15:21 11030
原创 constexpr和常量表达式
常量表达式常量表达式(const expression)是指值不会改变并且在编译过程就能得到计算结果的表达式。显然,字面值属于常量表达式,用常量表达式初始化的const对象也是常量表达式。const int a = 3;//a是常量表达式const int b = a+1;//b是常量表达式int c = 8;//c不是常量表达式,因为c的数据类型是int而不是const intco
2017-11-13 10:59:22 2736
原创 size_type
size_type是在STL的string类和vector类中定义的类型,用以保存任意string对象或vector对象的长度,size_type的抽象意义是尺寸单位类型。size_type实质上是无符号整型,但其长度不是固定的,它可以是unsigned int,也可以是unsigned long甚至是unsigned long long。简单来说,size_type足够存放下任何string
2017-11-09 23:54:18 686
原创 Heap Sort(堆排序)
堆排序(HeapSort)是利用堆结构(常用二叉堆)所设计的一种排序算法,属于选择排序的一种。关于堆结构的介绍参见另一篇博文:点击打开链接算法思想 堆排序利用堆结构根节点的元素最大(或最小)的特点,不断取出根节点并维护堆结构来实现排序。实现步骤 以大根堆为例:1.建堆,将初始序列建成一个大根堆 2.将根节点(首元素)与最后...
2017-11-05 13:48:08 8448
原创 二叉堆
堆结构定义 堆是一种树型结构,对于堆结构来说,堆的每一个节点的元素都要大于(或小于)其所有子节点的元素,满足这一条件的树被称为堆。若每个节点元素大于其所有子节点的元素,则这个堆被称为大根堆(最大堆),反之若每个节点元素小于其所有子节点的元素,则被称为小根堆(最小堆)。 二叉堆是每个节点最多只有两个子节点的堆,它可以被看成一个近似地完全二叉树,可以用数组表示。二叉堆除...
2017-11-04 16:57:46 801
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人