2017年11月4日

c++11 右值的学习

摘要: 从4行代码看右值引用 概述 简单的左值和右值的判断就是 看是否可以取得地址 可取得地址 是左值 不能则 是右值! c++98/03中的左值引用是这样的: int&是对左值进行绑定(但是int&却不能绑定右值), 对右值进行绑定的引用就是右值引用,他的语法是这样的A&&,通过双引用号来表示绑定类型为A 阅读全文

posted @ 2017-11-04 00:31 zhangkele 阅读(323) 评论(0) 推荐(1) 编辑

2017年11月3日

从I/O事件到阻塞、非阻塞、poll到epoll的理解过程

摘要: I/O事件 I/O事件 非阻塞I/O。在了解非阻塞I/O之前,需要先了解I/O事件 我们知道,内核有缓冲区。假设有两个进程A,B,进程B想读进程A写入的东西(即进程A做写操作,B做读操作)。进程A需要先写入到内核缓冲区中,然后B从内核缓冲区中读取,如图: 进程B会监听内核缓冲区的变化 I/O事件的阻 阅读全文

posted @ 2017-11-03 14:05 zhangkele 阅读(283) 评论(0) 推荐(0) 编辑

2017年10月15日

今天遇到的加锁问题

摘要: //有一些 头文件没有加上 阅读全文

posted @ 2017-10-15 22:00 zhangkele 阅读(136) 评论(0) 推荐(0) 编辑

2017年10月9日

多线程读写shared_ptrshared_ptr要加锁分析!学习笔记

摘要: (shared_ptr)的引用计数本身是安全且无锁的,但对象的读写则不是,“因为 shared_ptr 有两个数据成员,读写操作不能原子化"。使得多线程读写同一个 shared_ptr 对象需要加锁 • 一个 shared_ptr 对象实体可被多个线程同时读取; • 两个 shared_ptr 对象 阅读全文

posted @ 2017-10-09 09:45 zhangkele 阅读(317) 评论(0) 推荐(0) 编辑

2017年10月6日

分配一维动态数组or 二维动态数组的方法以及学习 new 方法or vector

摘要: 先来个开胃菜 使用第一种方式进行动态分配存储空间的结果为:*a= 1使用第一种方式进行动态分配存储空间的结果为:*b= 2使用第一种方式进行动态分配存储空间的结果为:*c= 3d[0]= 3d[0]= 6d[0]= 3 以上为执行结果 自己想啊!!!! new一个指针数组 对于类A的指针,可以这样写 阅读全文

posted @ 2017-10-06 19:23 zhangkele 阅读(270) 评论(0) 推荐(0) 编辑

2017年10月5日

关于i++与++i的学习讨论!

摘要: 先谈容易的知识点 区别两个 1、 i++ 返回原来的值,++i 返回加1后的值。 2、 i++ 不能作为左值,而++i 可以。 重点说下第二点。首先解释下什么是左值 左值是对应内存中有确定存储地址的对象的表达式的值,而右值是所有不是左值的表达式的值。 左值与右值的根本区别在于是否允许取地址&运算符获 阅读全文

posted @ 2017-10-05 23:48 zhangkele 阅读(127) 评论(0) 推荐(0) 编辑

vector 中需要注意的东西!

摘要: vector的erase方法注意点!!! C++11是这样的: iterator erase (const_iterator position); iterator erase (const_iterator first, const_iterator last); vector::erase(): 阅读全文

posted @ 2017-10-05 11:32 zhangkele 阅读(519) 评论(0) 推荐(0) 编辑

c++中 函数的默认参数 学习

摘要: 默认参数指的是当函数调用中省略了实参时 自动使用一个默认的值。 对于带参数列表的函数,必须从右向左添加默认值 (就是说她的右边肯定是先有默认的值) fun(int ,1,2,3) 不能 fun(int,1,int,int)等情况! 够清楚了吧!! 1 声明时带有默认参数,实现时没有默认值 (ok) 阅读全文

posted @ 2017-10-05 10:47 zhangkele 阅读(221) 评论(0) 推荐(0) 编辑

为什么 c++中函数模板和类模板的 声明与定义需要放到一起?

摘要: 将模板的声明与定义写在一起实在很不优雅。尝试用“传统”方法,及在.h文件里声明,在.cpp文件里定义, 然后在main函数里包含.h头文件,这样会报链接错误。why!!!!!!!!!!!!! 这是因为函数模板要被实例化后才能成为真正的函数,在使用函数模板的源文件中包含函数模板的头文件,(carefu 阅读全文

posted @ 2017-10-05 01:36 zhangkele 阅读(3478) 评论(0) 推荐(0) 编辑

2017年10月4日

c++中赋值运算符重载为什么要用引用做返回值?

摘要: class string{ public: string(const char *str=NULL); string(const string& str); //copy构造函数的参数为什么是引用呢? 我相信大家都懂的! string& operator=(const string & str); 阅读全文

posted @ 2017-10-04 09:15 zhangkele 阅读(3520) 评论(0) 推荐(0) 编辑

导航