- 博客(31)
- 收藏
- 关注
原创 字节对齐规则和位域
字节对齐规则结构体的起始存储位置必须是能够被该结构体中最大的数据类型所整除。 每个数据成员存储的起始位置是自身大小的整数倍(比如int在32位机为4字节,则int型成员要从4的整数倍地址开始存储)。 结构体总大小(也就是sizeof的结果),必须是该结构体成员中最大的对齐模数的整数倍。若不满足,会根据需要自动填充空缺的字节。 结构体包含另一个结构体成员,则被包含的结构体成员要从其原...
2019-10-18 10:20:11
271
原创 《思考的艺术》——书评与思维导图
抽空读了下这本书,先说说整体感觉:内容基本满意,书的布局非常不喜欢。先吐槽吧:目录太过宽泛,给人造成“只见树木不见林”的感觉。目前只列出了各章节的标题在目录中,但每个章节包含很多的小标题,各标题的字体、大小都一样,很难区分逻辑、层次关系,如果读的时候精力不集中,就会造成不知道这个标题存在的意义是什么,所以就得经常的反复翻阅,非常不方便。其实各个小标题之间是有逻辑与层次关系的,所...
2019-09-02 21:57:27
877
原创 vim连接外接显示器后右侧无法选中的问题
RT~解决办法:在.vimrc添加如下代码:if has("mouse_sgr") set ttymouse=sgrelse set ttymouse=xterm2end原文连接:https://ifconfiger.com/articles/vim-bug-not-clickable-on-wilder-screen...
2019-08-23 14:27:36
222
原创 linux vim配置指南
1,拔掉鼠标系列(一) 高效的vimhttps://tc500.github.io/%E5%B7%A5%E5%85%B7%E9%93%BE/2019/02/08/%E9%AB%98%E6%95%88%E7%9A%84vim/#%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B62,如何用Vim搭建IDE?https://harttle.land/2015/11/04...
2019-05-27 20:44:52
479
原创 [C++ Template]模板与设计--表达式模板
目录第18章 表达式模板18.1 临时变量和分割循环18.2 在模板实参中编码表达式18.2.1 表达式模板的操作数18.2.2 Array类型18.2.3 运算符18.2.4 回顾18.2.5 表达式模板赋值18.3 表达式模板的性能与约束第18章 表达式模板在这一章里, 我们将介绍一种称为表达式模板(expressiontemplate) 的编程技术...
2018-11-27 10:35:52
1098
1
原创 [C++ Template]模板与设计--metaprogram
目录第17章 metaprogram17.1 metaprogram的第一个实例17.2 枚举值和静态常量17.3 第2个例子: 计算平方根17.4 使用归纳变量17.5 计算完整性17.7 使用metaprogram来展开循环第17章 metaprogrammetaprogramming(元编程)含有“对一个程序进行编程”的意思。 换句话说, 编程系统将会执行...
2018-11-26 16:01:49
437
原创 [C++ Template]模板与设计--模板的多态威力
目录第14章 模板的多态威力14.1 动多态14.2 静多态14.3 动多态和静多态14.3.1 术语14.3.2 优点和缺点第14章 模板的多态威力多态是一种能够令单一的泛型标记关联不同特定行为的能力。 对面向对象的程序设计范例而言, 多态可以说是一块基石。 在C++中, 这块基石主要是通过继承和虚函数来实现的。 由于这两个机制(继承和虚函数) 都是(至少一部分)...
2018-11-26 10:59:13
2077
1
原创 [C++ Template]深入模板--特化与重载
目录第12章 特化与重载12.2 重载函数模板12.2.1 签名12.2.2 重载的函数模板的局部排序12.2.3 正式的排序原则12.2.4 模板和非模板12.3 显式特化12.3.1 全局的类模板特化12.3.2 全局的函数模板特化12.3.3 全局成员特化12.4 局部的类模板特化第12章 特化与重载目前为止,我们已经知道了:C++模板如何...
2018-11-26 09:03:21
3471
2
原创 [C++ Template]深入模板--模板实参演绎
目录第11章 模板实参演绎11.1 演绎的过程11.2 演绎的上下文11.3 特殊的演绎情况(比较晦涩,不理解)11.4 可接受的实参转型11.5 类模板参数11.6 缺省调用实参第11章 模板实参演绎在每个函数模板的调用中, 如果都显式地指定模板实参(例如,concat<std::string, int>(s,3) ) , 那么很快就会导致很繁琐的...
2018-11-25 21:24:12
513
原创 [C++ Template]深入模板--实例化
目录第10章 实例化10.1 On-Demand实例化10.2 延迟实例化10.3 C++的实例化模型10.3.1 两阶段查找10.3.2 POI10.3.5 例子10.5 显式实例化第10章 实例化模板实例化是一个过程, 它根据泛型的模板定义, 生成(具体的) 类型或者函数。 在C++中, 模板实例化是一个很基础的概念, 但却多少有一些错缩复杂。 复杂性的...
2018-11-23 11:42:47
1137
原创 [C++ Template]深入模板--模板中的名称
目录9 模板中的名称9.1 名称分类9.2 名称查找9.2.1 Argument-Dependent Lookup(ADL)9.2.2 友元名称插入9.2.3 插入式类名称9.3 解析模板9.3.2 依赖型类型名称9.3.3 依赖型模板名称9.3.4 using-declaration中的依赖型名称9.3.5 ADL和显式模板实参9.4 派生和类模板...
2018-11-22 17:12:51
1274
原创 [C++ Template]深入模板--深入模板基础
目录8 深入模板基础8.1 参数化声明8.1.1 虚成员函数8.1.2 模板的链接8.2 模板参数8.2.1 类型参数8.2.2 非类型参数8.2.3 模板的模板参数8.2.4 缺省模板实参8.3 模板实参8.3.1 函数模板实参8.3.2 类型实参8.3.3 非类型实参8.3.4 模板的模板实参8.3.5 实参的等价性8.4 友元...
2018-11-21 08:55:48
1172
原创 [C++ Template]基础--技巧性基础知识
目录5 技巧性基础知识5.1 关键字typename5.2 使用this->5.3 成员模板5.4 模板的模板参数5.5 零初始化 5.6 使用字符串作为函数模板的实参5.7 小结 5 技巧性基础知识本章给出模板的一些更深入的基础知识, 它们都是和模板的实际应用密切相关的, 包括关键字 typename 的另一种用法、 把成员函数和嵌套类也定义成模...
2018-11-20 08:35:25
600
原创 [C++ Template]基础--非类型模板参数
目录4 非类型模板参数4.1 非类型的类模板参数4.2 非类型的函数模板参数4.3 非类型模板参数的限制4.4 小结 4 非类型模板参数对于函数模板和类模板, 模板参数并不局限于类型, 普通值也可以作为模板参数。 在基于类型参数的模板中, 你定义了一些具体细节未加确定的代码, 直到代码被调用时这些细节才被真正确定。 然而, 在这里, 我们面对的这些细节是值(valu...
2018-11-19 08:34:18
1257
原创 [C++ Template]基础--类模板
目录3 类模板3.1 类模板Stack的实现3.2 类模板Stack的使用3.3 类模板的特化3.4 局部特化3.5 缺省模板参数3.6 小结3 类模板与函数相似, 类也可以被一种或多种类型参数化。 3.1 类模板Stack的实现template <typename T>class Stack {private: std::vec...
2018-11-16 08:42:12
246
原创 [C++ Template]基础--函数模板
目录2 函数模板2.1 初探函数模板2.2 实参的演绎2.3 模板参数2.4 重载函数模板2.5小结2 函数模板函数模板是那些被参数化的函数, 它们代表的是一个函数家族。2.1 初探函数模板如下就是一个返回两个值中最大值的函数模板:template <typename T>inline T const& max(T c...
2018-11-15 18:41:26
319
2
原创 Partial Specialization模板偏特化(部分具体化)
模板实例与特化:https://blog.csdn.net/u014587123/article/details/82779357模板偏特化:https://blog.csdn.net/u014587123/article/details/82779357原生指针:https://blog.csdn.net/u013575812/article/details/51151112...
2018-09-23 15:33:52
284
原创 [SGI STL]空间配置器--内存管理
[SGI STL]系列文章前言 废话不多说,读侯捷的SGI STL源码分析目的有三个:1,接触c++不久就开始跟STL打交道,一直有个好奇心,这么强大的库到底是谁、咋实现的?;2,不熟悉实现就用不好STL,所以想更好的应用STL,就有必要一探其底层驱动;3,引用林语堂先生的一句话:“只用一样东西,不明白它的道理,实在不高明”;目录1,如何使用空间适配器2,一...
2018-09-22 20:01:45
1433
1
原创 SGI STL中的union obj
这两天开始看侯捷的STL源码剖析,STL的allocator中的第二级配置器__default_alloc_template时,free-list的节点结构:union obj{ union obj* free_list_link; char client_data[1];};书中对此的解释是是:“由于union之故,从其第一字段观之,obj可被视为一个指针,指向...
2018-09-16 16:39:55
525
原创 Python中类成员变量与实例成员变量相互影响的原因超详细解释
今天在看python学习手册时看到了两句话:一(第26章中“类对象提供默认行为”)二(第26章中“实例对象是具体的元素”)书中给的例子是这样的:但上网查了一下好像第二句话不是非常准确,如下面的文章原文:https://www.jb51.net/article/112525.htm在此之上继续验证了下:class father: count ...
2018-09-14 09:13:58
2228
1
原创 C++的重载(overload)与重写(override)
今天在学习c++11的时候遇见了override说明符,顺便复习了下继承中的隐藏概念,发现以前还是没有理解到位,各种百度后发现两篇比较好的文章:https://www.cnblogs.com/luxiaoxun/archive/2012/08/09/2630751.htmlhttps://www.cnblogs.com/xinxue/p/5471708.html特此记录。简单概括之...
2018-08-20 18:32:02
145
原创 [C++ Primer Plus]实例化与具体化
8.5.3一,第三代具体化对于给定的函数名,可以有非模板函数,模板函数和显示具体化模板函数,以及他们的重载版本。在调用是函数寻找的优先级为:非模板函数>具体化>常规模板17.1.2一,iostream文件程序中包含iostream文件将自17.1.2一,iostream文件程序中包含iostream文件将自17.1.2一,iostream文件程序中包含iostream文件将自...
2018-07-08 13:32:51
367
3
原创 [C++ Primer Plus]输入、输出和文件
17.1.2一,iostream文件这程序中包含iostream文件将自动创建8个流对象:cin,cout,cerr,clog以及用于宽字符的wcin,wcout,wcerr,wclog。标准输出cout与标准错误cerr,clog区别在于,如果操作系统重定向输出到文件而不是显示器,则标准输出将与文件相连,但标准错误仍与显示器相连。17.2.1二,重载的<<运算符(插入运算符)ostr...
2018-07-01 18:24:54
639
原创 [C++ Primer Plus] 友元、异常和其他
15.1.1一,友元类当一个类需要改变另一个类的状态时,可以类成为另一个类的友元。友元的声明可以位于公有、私有或者保护部分,其所在的位置无关紧要。如将class Remote 作为 class TV 的友元,由于在类Remote 中肯定会提到类TV ,所以编译器必须在了解TV 类后才能处理Remote 类。最简单的方法就是首先定义TV 类,也可是使用前向声明。首先定义TV类:class TV{...
2018-03-11 20:35:14
315
原创 [C++ Primer Plus] C++中的代码重用
14.1.1一,接口和实现使用公有继承时,类可以继承接口,可能还有实现(基类的纯虚函数提供接口,但不提供实现)。获得接口是is-a关系的组成部分。而使用组合(或者叫包含、层次化,即成员本身是另一个对象),类可以获得实现,但不能获得接口。不继承接口是has-a关系的组成部分。class Student{//包含版本private: typedef std::valarray A
2018-01-20 17:26:09
202
原创 [C++ Primer Plus] 类基础知识--类继承
13.1.1一,公有派生类公有派生,基类的公有成员将成为派生类的公有成员;基类的私有部分也将成为派生类的一部分,但只能通过基类的公有和保护方法访问。13.1.2二,派生类构造函数的要点1,首先创建基类对象(基类对象应当在程序进入派生类构造函数之前被创建);2,派生类构造应通过成员初始化列表将基类信息传递给基类构造函数;3,派生类构造应当初始化派生类新增的数据成员;创
2017-12-31 09:50:09
312
原创 [C++ Primer Plus] 类基础知识--类和动态内存分配
各章节知识点:12.11,静态类成员的特点:无论创建了多少类对象,程序都只穿件一个静态类变量副本。也就是说,类的所有对象共享同一个静态成员.class string{ priviate: static int num_string;}
2017-12-30 11:45:12
185
原创 [C++ Primer Plus] 类基础知识--使用类
(一) 散知识1, 不要返回指向局部变量或临时变量的引用。函数在执行完毕后,局部变量和临时变量对象将消失,引用将指向不存在的数据。(二) 运算符重载1, 运算符重载的格式: operator op(argument-list)其中,op是有效的的C++运算符,不能虚构一个新的符号。假设存在两个类对象a和b都是A类型,重载运算符 + 之后便可以执行以下操作
2017-01-16 21:40:43
497
原创 [C++ Primer Plus] 类基础知识
(一) 散知识1,一种常见但不通用的规定------将类名首字母大写;将类的数据成员名中使用 m_ 前缀(m_a)或者在成员名中使用后缀 _ (a_);2,不必在类声明中使用关键字private,因为这是类对象的默认访问控制;如: class A { int m_count; //private by default ch
2017-01-14 12:45:35
295
翻译 sqlite3_column
此文档的原文地址为为:https://www.sqlite.org/c3ref/column_blob.html。 通常,我们都会判断sqlite3_step(pStmt)的返回值是否等于SQLITE_ROW来判断是否继续执行sqlite3_step(pStmt)。在这个过程中,每执行完一次sqlite3_step()之后,会得到Table当前行的值,这时就可以被多次调用去查询这个
2016-08-01 20:12:10
7250
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人