C++11/14/17/2特性
C++11/14/17/20部分新的特性语法 阅读全文
developer | android display/graphics
C++11/14/17/20部分新的特性语法 阅读全文
《数据结构(C++语言版)》书,关于数据结构再读记录。主要包含数据结构的基本概念、算法概念、时间复杂度、线性表(顺序表&链表) 阅读全文
C++类的声明、实现和使用,以及构造函数和析构函数。包含案例代码,可编译运行。 阅读全文
今天碰到一个细节bug,使用strcmp来比较两个字符串是否完全相同。但是忽略了一个问题,如果存在一个字符串包含在另一个字符串呢?此时就会发现需要用strstr函数。 阅读全文
运算符重载运算符重载将重载的概念扩展到运算符上,允许赋予C++运算符多种含义。 例如* 用于地址,将获得存储在这个地址中的值;而用于两个数字之间,得到的是乘积。 阅读全文
单独编译C++提供#include语法,因而可以将程序划分,大致可以分成三部分: 头文件a.h:包含结构声明和使用这些结构的函数原型 源代码文件a.cpp:包含与结构相关的函数的代码 源代码文件b.cpp:包含调用与结构相关的函数的代码 阅读全文
箭头->和点号.声明一个结构: 123struct mystruct { int age;}; 阅读全文
内联函数 常规函数调用使程序跳到另一个地址(函数的地址),并在函数结束后返回。来回跳跃并记录跳跃位置意味着一定的开销。内联函数使得编译器将相应的函数代码替换函数调用。程序无需跳到另一个位置处执行代码,再调回来。因而,内联函数运行速度比常规函数快,但是代价是需要占用更多的内存。如果程序在10个不同的地方调用调用同一个内联函数,则该程序将包含该函数代码的10个副本。 阅读全文
本章节主要是围绕函数为圆心,涉及到字符串、指针、C++11特性auto、typedef。由于接触android源码、opengl,需将C++学习一遍,之前只是用过java、c、c#这些。涉及到android源码,例如frameworks/native的surfaceflinger,gui,ui, 以及vender,hardware都是需要仔细的阅读C++代码才能够理解。再如graphics的测量、绘制渲染、硬件加速、合成显示,私以为学习一些图形学是有必要的。人生在勤,不索何获。 阅读全文
if语句 两种格式: if和if else 阅读全文
for循环12for (int i = 5; i < 0; i--) cout << "i=" << i <<endl; 阅读全文
使用new创建动态结构 在运行时创建数组优于编译时创建数组,对于结构也是如此。需要在程序运行时为结构分配所需的空间,可以使用new完成。动态意味着内存是在运行时,而不是编译时分配的。例如inflatable *ps = new inflatable;其中inflatable是一个结构类型。这句代码将把存储结构inflatable的一块可用内存的地址赋值给ps。箭头成员运算符->,可用于指向结构的指针。例如ps指向一个inflatable结构的成员price,即ps->price 阅读全文
枚举enum C++的enum工具提供了另一种创建符号常量的方式,可以代替const。它还允许定义新的类型,但是必须严格按照格式。使用enum语法格式和结构相似,例如 阅读全文
题外话: 在我眼里,我实习的第一家公司教会了我两件事,一是让自己忙起来,二是代码规范整洁。有时候有所悟会很晚,但终究不迟。序: C++提供了基于整型和浮点类型创建的复合类型。影响最深远的复合类型是类。然而,C++还支持几种普通的复合类型。例如,数组 可以存储多个同类型的值。结构 可以存储多个不同类型的值。指针 则是一种将数据所处位置告诉计算机的类型。 阅读全文
浮点常量 默认情况下,8.27和3.4E5这类浮点常量都属于double类型。如果希望常量是float类型,使用f或者F后缀对于long double的类型,使用l和L的后缀 例如: 12341.234f //float2.2L //long double2.34F //float23.231E24 //double (defalut) 阅读全文
wchar_t 程序需要处理的字符集可能无法用一个8位的字节表示,比如日文、汉字等此时有两种处理方法: 编译器厂商将char定义16位的字节或者更长 char表示8位的字节,另一种wchar_t表示宽字符类型,可以扩展字符集 阅读全文