c++
yiqiaoxihui
他强由他强,清风拂山岗!
展开
-
C/C++ 编程基础,重拾C/C++
字符/字符串1.char *类型是字符串指针,无法获取其指向的字符串长度;char []类型是字符串数组,使用sizeof()可以获取其长度。2.strlen()函数计算字符串长度仅以‘\0’作为字符串结束标志,而sizeof()能获取真实的字符数组的长度。3.char */char[] 转std::string 也以字符指针/数组中第一个‘\0’认为是字符串的结束。4.malloc...原创 2020-03-14 20:25:30 · 176 阅读 · 0 评论 -
《Effective C++》条款04:确定对象被使用前已被初始化
1.类成员初始化时机class test{public: test() :a("test"){//使用member initalization list }; test(string v){ a = v; //在函数体内,使用赋值操作 } string a;};我们知道,对类成员进行初始化一般是在其构造函数中进行,区别在于是放在函数体内部,还是使用member initi...原创 2018-07-04 00:37:00 · 174 阅读 · 0 评论 -
《深度探索C++对象模型》 构造、析构、拷贝语义学 第五章笔记
本章主要介绍在不同的继承体系下,针对类的构造、析构及拷贝操作,编译器为其做了哪些工作。1.继承体系下的对象构造我们使用构造函数的初始化成员列表初始化成员时,对于对象会分别调用其拷贝构造函数。含有虚函数的,编译器在其构造函数中设置虚函数表,这是最好的时机。但可以考虑和初始化成员哪个放前面好?虚拟继承体系下,对虚基类成员初始化应由最后一层类负责。可以想象,不然呢?交由哪个subobject都不合适。文...原创 2018-06-18 17:28:24 · 216 阅读 · 0 评论 -
《深度探索C++对象模型》勘误表
1.P32页--翻译建议2.P37页 第二章标题 构造函数语意学,语意->语义 原文:The Semantics of Constructors,Semantics 显然是语义而非语意。原创 2018-06-08 10:55:20 · 384 阅读 · 0 评论 -
《深度探索C++对象模型》 第一章笔记
1.关于类本身占用内存大小class Point { public: Point( float xval ); virtual ~Point(); float x() const; static int PointCount(); protected: virtual ostream& print( ostream &...原创 2018-06-07 23:57:53 · 347 阅读 · 1 评论 -
《深度探索C++对象模型》 Function语义学 第四章笔记
本章主要探讨C++类的成员函数(member function):static、nonstatic、及vritual函数调用方式的区别。1.1非静态成员函数C++类的非静态成员函数(nonstatic member function)被设计为和普通非成员函数具有相同的效率。可以思考怎样将一个成员函数转化为一个非成员函数?解决这个问题,首先需要搞清楚他们之间有何区别。可以想象,最大的区别就是非成员函...原创 2018-06-14 12:03:04 · 260 阅读 · 1 评论 -
《深度探索C++对象模型》 Data语义学 第三章笔记
本章主要讨论类的成员变量(Data Member)的相关语义。1.Data Member 的绑定2.Data Member的布局3.3Data Member的存取可以想象,一下几种情况对Data Memeber的访问赋值有所区别:1.单一继承2.多重继承3.虚继承(virtual inheritance)4.多态下的成员操作有所区别的根本原因还是成员在对象中的存储结构。因此先理解这几种情况下对象的...原创 2018-06-11 11:42:38 · 253 阅读 · 0 评论 -
《深度探索C++对象模型》 构造函数语义学 第二章笔记
本章主要介绍类的构造函数有关的语义(semantics)1.默认构造函数原创 2018-06-11 11:06:33 · 239 阅读 · 0 评论 -
C/C++ 局部变量 和new 动态申请
下面一段c++程序 int i = 5; cout << "dui_apply:" << endl; while (--i){ int *dui_apply = new int; cout << dui_apply << endl; } cout <<endl<< "stack_init:&quo原创 2018-03-25 20:52:59 · 2684 阅读 · 0 评论 -
数字/字符串排列组合(Leetcode) 总结
综述:使用递归求解问题有时往往令人费解,博主对递归也是头痛不已,以下问题,利用递归很容易求解。总的来说,递归需要设计成:处理单个问题,递归求解子问题,设置出口。需要铭记的是递归所做的工作和处理单个问题一样,所以只要单个问题取遍所有情况,那么递归同样也能取得所有情况。切记不要去想递归到底怎么一层层的调用,不管是读代码还是写代码,需要关注的是递归出口,程序怎么设计求解单个问题,一旦单个问题解决了,后续...原创 2018-04-08 12:47:34 · 6411 阅读 · 0 评论 -
动态规划 凸 n 边形三角剖分最小周长
题目输入凸 n 边形 p 1 ,p 2 ,··· ,p n , 其中顶点按凸多边形边界的逆时针序给出,多边形中不相邻顶点间的连线称为弦。试设计一个动态规划算法,用若干条弦将凸边形 p 1 ,p 2 ,··· ,p n 剖分成一些无公共区域的三角形,使得所有三角形的周长之和最小。优化子结构及子问题重叠性设所有三角形周长之和最小的一个划分为MTD,划分的所有不相邻顶点连线为MTLi(i从1到n-2,因...原创 2018-03-23 16:42:49 · 1341 阅读 · 0 评论 -
动态规划 求第 n 个 Humble Number(丑数)
题目: 质因数分解是将一个数分解为若干个质数相乘的形式,这些因数可以重复。比如 30 = 2×3×5,20 = 2×2×5,81 = 3×3×3×3。现在我们将质因数分解之后只出现 2,3,5,7 的数称为 Humble Number,则 20,30,81 均为Humble Number,而 11,22 不是。前 20 个 Humble Number 的序列为 1,2,3,4,5,6,7,8,9,...原创 2018-03-23 01:35:38 · 548 阅读 · 0 评论 -
C++ primer 第四章表达式-总结
1. decltype(expression)编译器使用下列规则来确定expression 参数的类型。如果 expression 参数是标识符或类成员访问,则 decltype(expression) 是 expression 命名的实体的类型。如果不存在此类实体或 expression 参数命名一组重载函数,则编译器将生成错误消息。如果 expression 参数是对一个函数或一个重载运算符...原创 2018-03-03 11:47:47 · 149 阅读 · 0 评论 -
c++ 常量引用 常量指针
常量限定符 const:常量对象一旦创建不能修改,因此必须初始化。引用:引用即别名,不占内存空间,必须初始化。例如,int n = 2;int &y = n;cout << &n << endl;cout << &y << endl;输出为006FF928006FF928指针:用于指向某个对象,存放该对象的地址。i...原创 2018-02-28 20:41:51 · 335 阅读 · 0 评论