自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 问答 (3)
  • 收藏
  • 关注

转载 为何会有enable_share_from_this

这几天看到了这个东西,一直很疑惑这是干嘛的,看到stackoverflow上面的一个大牛的解释,原话如下:The key point is that the "obvious" technique of just returning shared_ptr(this) is broken, because this winds up creating multiple distinc

2016-10-04 11:08:51 452

原创 C++字节对齐总结+疑问

先看程序和图吧1 linux g++ 4.8.1版本

2016-10-02 11:26:35 288

原创 快速 和堆 排序算法

#include #include #include #include using namespace std;void quickSort(int arr[], int i, int j){int i1 = i;int i2 = j;if(i {int tmp = arr[i];while(i {while(arr[j] >

2016-09-10 09:29:56 289

原创 给定一个数n,输出n的环形矩阵

#include #include #include using namespace std;void HelixMatrix(int n){ int **a = new int*[n]; int i; for (i = 0; i < n; i++) a[i] = new int[n]; int m = 0; int j; int t;

2016-09-02 00:14:11 1317

转载 创建模型总结

这个例子感觉比较好,感觉讲抽象问题时最好举例说明,很多人在说模式时都是概念上讲概念,最后很多人只是记住概念,还是不会用。下面例子原址  http://bbs.chinaunix.net/thread-3585936-1-1.html简单工厂。请注意,简单工厂不是GOF的23种设计模式之一。GOF的23种设计模式中,有两种关于工厂的模式,是工厂方法模式和抽象工厂模式。简单工厂和工厂方法模式不

2016-09-01 15:26:10 428

原创 C++模版总结

函数模版:1 模版函数使用时,是不允许自动类型转换的,通过实参演绎,生成对应函数实例。2,模版实参演绎不是和模版函数的返回类型, 可以通过交换模版参数位置,实现返回类型的显示实例化。3 函数模版实例通常被看成用来命名一组重载函数的集合,所以用函数模版实例 去演绎 函数模版参数时,需要指定该函数模版实例的具体类型。(C++ templates P37,这句话看了好几天)4 使用字符串

2016-08-26 09:33:30 277

原创 sizeof 可变参数的模版特化 C++ templa

1 sizeof 测量函数返回值大小的时候,是不执行函数的2 可变参数列表可以没有一个参数,只是不能用参数了(这句不知到对不对)3 可变参数列表再模版实例化过程中比较弱;#include using namespace std;long long fun1(...){cout return 3l;}

2016-08-25 20:18:02 1213

转载 gdb调试多进程、线程

1. 默认设置下,在调试多进程程序时GDB只会调试主进程。但是GDB(>V7.0)支持多进程的分别以及同时调试,换句话说,GDB可以同时调试多个程序。只需要设置follow-fork-mode(默认值:parent)和detach-on-fork(默认值:on)即可。      follow-fork-mode  detach-on-fork   说明parent         

2016-08-24 21:07:48 260

原创 C++ 关于构造,赋值函数

1 拷贝构造函数必须参数必须为引用, 如果不是会编译错误, 从逻辑上讲:拷贝函数会在 调用函数传递该类型 值类型的参数,返回该类型的值类型的参数 ,以及现实调用,如果拷贝函数参数也是值类型,前两者情况就会出现反复调用。2 赋值运算重载, 函数第二个参数也最好是const 引用 ,当类型重载加法或者别的运算需要用到该类型的临时变量时,该临时变量都是const 对象,先不说了,可能会表达错误

2016-07-24 15:18:36 307

原创 C++\C指针作为参数

在 用指针作为函数参数时1 参数指针指向实参内存地址,如果在函数里面从新赋值给参数指针地址,该参数不会指向实参地址了,因此,如果希望函数修改实参指针内容,必须在调用函数里面申请内存,并且在被调用函数里面解引用参数指针。

2016-07-20 19:53:36 303

转载 锁 互斥量 信号量

原帖地址:http://blog.csdn.net/lhf_tiger/article/details/7203299 转载一下  Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。 Semaphore是一件可以容纳N人的房间,如果人不

2016-07-16 22:31:58 278

转载 返回函数的指针, 参数为函数指针。。。。。

C++通过引用传递数组 数组形参可以声明为数组的引用。如果形参是数组的引用,编译器不会将数组实参转化为指针,而是传递数组的引用本身。在这种情况下,数组大小成为形参和实参类型的一部分(实参长度与形参长度不同时,编译报错)。 void printValue(int (&a)[5]){...} int main(){ int i=0; int j[2]={0,1}; 

2016-07-16 22:07:26 347

转载 va_start和va_end使用详解

本文主要介绍va_start和va_end的使用及原理。  在以前的一篇帖子Format MessageBox 详解中曾使用到va_start和va_end这两个宏,但对它们也只是泛泛的了解。  介绍这两个宏之前先看一下C中传递函数的参数时的用法和原理: 1.在C中,当我们无法列出传递函数的所有实参的类型和数目时,可以用省略号指定参数表void foo(

2016-07-11 21:54:17 321

原创 内存对齐,malloc内存对齐

1 #include 2 #include 3 using namespace std;4 5 int main()6 {7 struct {8 int a;9 long b;10 float c;11 double d;12 }var;13 int a[5] = {0};14 cout 15 cout 16 cout 17 cout

2016-07-02 13:03:25 1215

原创 sizeof 指针 和数组名

1 #include  2   3 using namespace std;  4   5 void func(short arr[])  6 {  7         cout   8 }  9 int main() 10 { 11         short arr[10] = {0}; 12         short *p = arr; 13

2016-06-20 16:56:53 470

转载 VC MFC工具栏(CToolBar)控件

VC MFC工具栏(CToolBar)控件工具栏工具栏控件在控件面板里没有对应的选项(图标),但有一个工具栏控件类CToolBar,所以我们如果要创建一个工具栏控件并显示在窗口里的话,只能用代码来完成,事实上任何一种控件,都可以用代码创建,如CButton按钮类,现举一个用代码创建按钮控件并显示在窗口里的例子。CButton类的Create成员函数可以创建一个按钮控件,这个函数的格式如

2016-05-27 20:38:53 568

原创 利用杨辉三角求组合代码

//在数据类型内运算可以求得正确结果,代码有冗余,由三角矩阵的两列可以得出全部组合数列,暂时先用这种笨拙的方法#include using namespace std;int main(int argc, char* argv){    long long M,N,K;long long i,j;        cin >> M;    cin >>

2016-05-21 17:29:12 299

转载 opengl 配置问题

opengl的高级菜鸟问题   看了一本书《OpenGL三维图形系统开发与应用技术》,但是,其中涉及到glut.h文件的函数无法正常连接,典型的错误如下:  ------ 已启动生成: 项目: gears, 配置: Debug Win32 ------  1>正在链接...  1>GEARS.obj : error LNK2019: 无法解析的外部符号 ___glutInitWit

2016-05-18 10:50:11 340

转载 C++空类的作用一

项目里对象比较多,需要统一初始值,也需要根据该值判断对象的状态,nginx 开发指南使用空类来实现所有类型统一值的设定

2016-05-12 22:25:22 1110

转载 重载操作符解析

重载操作符是个好青年,但是要吐槽的是,我们时常为了重载操作符编写许多重复的代码。这是枯燥的,但是也是必须的。你重载的越多,你的类的弹性就越大。但是,你也不能为所欲为。玩游戏总是遵守相应的规则,写重载操作符亦是如此!    以下是要遵守的游戏规则:一元操作符可以是不带参数的成员函数或带一个参数的非成员函数。二元操作符可以是带一个参数的成员函数或带两个参数的非成员函数。operator

2016-05-09 22:42:42 273

转载 xshell 连接到虚拟机

1.安装VMware11.0,这个软件在网上有很多,也都有破解版2.安装CentOS-6.5-x86_64-LiveDVD.iso,我使用的这个版本也是从网上下载的,700多M;网上还有个最小系统的,我也试了,不知道为什么就是装不上,如果有人用那个安装成功了,请指教。3.按照下面这个教程操作,http://wenku.baidu.com/link?url=KornMzLj-

2016-04-01 10:04:35 323

转载 $@

$@: 代表规则中的目标文件名。如果目标是一个文档(Linux中,一般称.a文件为文档),那么它代表这个文档的文件名。在多目标的模式规则中,它代表的是哪个触发规则被执行的目标文件名。

2016-03-04 15:59:20 381

转载 Linux下C++中的内存对齐

1.首先第一个问题就是为什么要进行对齐,现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定类型变量的时候经常在特 定的内存地址访问,这就需要各种类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。     对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只

2016-02-29 20:26:49 427

原创 java包编译问题

1 编译java文件时,如果包内含有import别的类时,编译器会寻找这个包,包内可以是.class 文件也可以是源文件,如果是源文件,会对它进行编译,生成的.class会和它的源文件在同一个目录下面;包的名称必须和目录结构相同。

2016-01-12 16:33:52 237

转载 linux系统编译C++程序时头文件和库文件搜索路径

C++编译时,教科书中写道:#include “headfile.h”优先在当前目录查找头文件;#include 从系统默认路径查找头文件。先前以为系统默认路径是环境变量$PATH指定的路径,在系统上一查,傻了眼:-bash-3.2$ echo$PATH/usr/local/bin:/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/usr/java

2015-12-21 16:51:43 687

转载 字符流stringstream详解

以下内容转自:http://www.usidcbbs.com/read-htm-tid-1898.htmlC++引入了ostringstream、istringstream、stringstream这三个类,要使用他们创建对象就必须包含sstream.h头文件。istringstream类用于执行C++风格的串流的输入操作。 ostringstream类用于执行C++风格的

2015-08-22 11:08:52 466

转载 C/C++中extern关键字详解

C/C++中extern关键字详解1 基本解释:extern可以置于变量或者函数前,以标示变量或者函数的定义在别的文件中,提示编译器遇到此变量和函数时在其他模块中寻找其定义。此外extern也可用来进行链接指定。      也就是说extern有两个作用,第一个,当它与"C"一起连用时,如: extern "C" void fun(int a, int b);则告诉编译器在编译fun这

2015-08-17 10:19:37 271

转载 list_entry()详解

Linux内核中,获取节点地址的函数list_entry()非常常用,由于其定义有点晦涩,先解析如下:list_entry的宏定义:#define list_entry(ptr, type, member) / ((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member))) 这个倒是不难理解:从一个

2015-05-23 16:33:35 388

转载 在Linux下改变进程的优先级

作为多任务的操作系统,Linux内核为每个创建的进程分配时间片并根据其优先级进行调度。当进程被创建时,其对应的task_struct里包含了四个优先级:struct task_struct {                ……                int prio, static_prio, normal_prio;                unsigned

2015-05-22 15:31:50 296

转载 在Linux下改变进程的优先级

作为多任务的操作系统,Linux内核为每个创建的进程分配时间片并根据其优先级进行调度。当进程被创建时,其对应的task_struct里包含了四个优先级:struct task_struct {                ……                int prio, static_prio, normal_prio;                unsigned

2015-05-22 15:14:06 299

转载 关于C C++的const详细讲解

C中的CONST  C中CONST的使用:  const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些帮助。  虽然这听起来很简单,但实际上,const的使用也是c语言中一个比较微妙的地方,微妙在何处呢?请看下面几个问题。  问题:const变量 &

2015-04-27 14:17:53 509

翻译 new delete

有new就有delete  有构造就有析构

2015-04-26 20:56:26 288

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除