基础理论~C/C++
文章平均质量分 57
xiazhiyiyun
这个作者很懒,什么都没留下…
展开
-
C++基础 内置类型和类类型的默认初始化和值初始化
C++基础 内置类型和类类型的默认初始化和值初始化写在前面的话如果定义变量时候没有指定初值,则变量被默认初始化。 但是默认初始化还有另外一个含义,在定义内置类型时由于定义变量的位置不同,有可能会不发生初始化操作(这种情况下称为默认初始化),也有可能会给定一个初值(称为值初始化)。 为了便于说明,这篇文章中都是指在没有指定初值的情况下定义变量,如:int i;默认初始化则采用第二种说法,和值初始化原创 2016-09-15 22:33:06 · 6336 阅读 · 1 评论 -
C++中使用宏需要注意的规范
使用宏需要注意的规范1. 用宏定义表达式时,要使用完备的括号2. 使用宏时,不允许参数发生变化3. 用大括号将宏所定义的多条表达式进行括起来原创 2017-06-15 19:47:43 · 2899 阅读 · 0 评论 -
C++类的静态成员
在C++中,声明一个类的静态数据成员意味着所有的实例只有该数据成员的一个拷贝。 static menber不属于对象的一部分,而是类的一部分。C++类可以拥有静态成员变量和静态成员函数。原创 2016-07-01 10:23:04 · 676 阅读 · 0 评论 -
【C++11新特性】auto关键字
介绍了C++11中auto关键字的新特性原创 2016-09-13 21:58:07 · 493 阅读 · 0 评论 -
无符号整数(string::size_type,size_t,unsigned,long unsigned)
string::size_type size_t unsigned long unsigned原创 2016-10-19 13:21:49 · 1934 阅读 · 0 评论 -
关于数据对齐(Data Alignment)
关于数据对齐 About Data Alignment数据对齐的由来1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。 2、性能原因:为了访问未对齐的内存,处理器需要作多次内存访问,然而,对齐的内存访问仅需要一次访问。这对于效率而言有一定的下降。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为原创 2016-12-22 13:26:30 · 1827 阅读 · 0 评论 -
探讨operator new和new operator
探讨operator new和new operator原创 2017-05-18 21:07:17 · 816 阅读 · 0 评论 -
理解const的内存分配
理解const的内存分配1. 基础知识在C语言例,const的含义是被称为一个不能被改变的普通变量,而在C++中其含义就不尽相同。尤其,目前许多的资料都指出:C++中的const常量,C++编译器都会尽量避免const 常量的内存分配,只有当不得已的时候才会分配具体的内存空间给const变量。具体什么情况下会分配内存给const变量,目前已经确定的有如下几种情况:2. 解析const int作为全局原创 2017-05-14 14:07:52 · 9530 阅读 · 1 评论 -
为什么`forward_list`不支持`push_back`操作?
为什么forward_list不支持push_back操作?由于forward_list是单向链表,所以我们如果想要访问尾元素,都要从首元素开始跌代,算法复杂度为O(n)。而对于list为双向链表,直接通过尾指针可以访问尾元素,实现在尾元素添加元素,函数复杂度为O(1),而vector,string,deque,也可以通过尾指针来添加元素,函数复杂度为O(1)。同样的原因也有forward_list原创 2016-10-16 22:40:54 · 2464 阅读 · 1 评论 -
C++模板编程模式CTRP
CRTP ,curiously recurring template pattern 奇特的递归模板编程,意思是一个类继承的父类是个模板类,参数是自己。原创 2017-08-20 12:11:13 · 1289 阅读 · 0 评论