UTF8-转GBK
#include
#include "windows.h"
std::string UtfToGbk(const char* utf8)
{
int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);
wchar_t* wstr = new wchar_t[……继续阅读 »
6年前 (2018-06-07) 4172浏览 0评论
2个赞
转载自:https://blog.csdn.net/zhang2531/article/details/51218149
1、为什么构造函数不可以是虚函数
①从存储空间角度
虚函数对应一个vtable,这大家都知道,可是这个vtable其实是存储在对象的内存空间的。问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内……继续阅读 »
6年前 (2018-05-29) 3750浏览 0评论
0个赞
本文转载自:http://www.cnblogs.com/malecrab/p/5572119.html
我要手动抄一遍,加深印象。
1.数据成员指针
对于普通指针,其值就是它所指向的地址,0表示空指针。
而对于数据成员指针(这个描述实际上并不合适,它指的应该是类或者结构的数据成员的地址),它的值是相对于对象起始地址的偏移量,-1表示空指针。如图:
代码示……继续阅读 »
6年前 (2018-05-28) 3867浏览 0评论
0个赞
为什么有时候即使是代码作者本身也不愿意对自己的代码进行review?
从自身实践出发,我认为可能有以下一些原因:
1.代码风格很差—-没有良好的命名风格,名字不能达到见名知其意的效果。命名规范可以参考谷歌C++编程规范。
2.在开发前期准备中,没有做好调研,导致逻辑混乱,条理不清,进一步引发的问题是,软件结构的设计不合理。—-用更简洁……继续阅读 »
6年前 (2018-05-28) 2300浏览 0评论
0个赞
树
树在逻辑上是一对多的关系,是一种非线性结构。
树:是n(n>=0)个有限结点的集合。n=0时称为空树。在任意一棵非空树中:(1)有且只有一个特定的称为根(Root)的结点;(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1、T2、T3、……、Tm,其中每一个集合本身又是一棵树,并称为根的子树(SubTree)。如图:
结点的分类
结点拥……继续阅读 »
7年前 (2018-04-02) 2944浏览 0评论
2个赞
基础
栈是限定仅在表尾进行插入和删除操作的线性表。
队列是只允许在一端进行插入操作,另一端进行删除操作的线性表。
栈
栈是一种先进后出的结构。它是仅限定在表尾进行删除和插入操作的线性表。我们把允许插入和删除的一端称为栈顶(top),另一端称为栈底(bottom),不含任何数据元素的栈称为空栈。栈又称为后进先出(LIFO:Last In First Out)的……继续阅读 »
7年前 (2018-03-28) 2413浏览 3评论
2个赞
什么是静态链表
就是用数组来描述链表,数组中的元素由两个数据域组成,data和cur,你可以把数组的元素设想成有两个元素的结构体。数据域data用来存放数据元素,而cur相当于单链表中的next指针,存放该元素的后继在数组中的下标,我们把cur叫做游标。这种用数组描述的链表叫做静态链表,也叫游标实现法。为了便于数据的插入,这个静态数组,我们通常会建的大一些。……继续阅读 »
7年前 (2018-03-28) 3302浏览 1评论
0个赞
线性表
零个或多个数据元素的有限序列。
注:1.元素之间是有顺序的,若元素存在多个,则第一个元素无前驱,最后一个元素无后继,其它每个元素都有且只有一个直接前驱和直接后继。
2.元素数量是有限的。
线性表的数学描述:
若将线性表记为(a1,a2,a3……,an),则表中ai-1领先于ai,ai领先于ai+1,称ai-1是ai的直接前驱元素,ai+1是ai的直接……继续阅读 »
7年前 (2018-03-27) 2709浏览 0评论
0个赞
单例模式
单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。
懒汉模式
即在第一次调用该类实例的时候才产生一个新的该类的实例,并在以后仅返回该类实例。
double-check静态成员实例的懒汉模式
#ifndef SINGLETON_H_
#define SINGLETON_H_
#include
#includ……继续阅读 »
7年前 (2018-03-26) 6186浏览 0评论
0个赞