自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 资源 (4)
  • 收藏
  • 关注

原创 面向对象的4要素:抽象,封装,继承,多态

在平时说到面向对象的特性的时候,一般的答案有几种。 如果是面向对象的3大基本特征:①抽象,继承,多态   ② 封装,继承,多态 如果是4特征:抽象,封装,继承,多态 可见抽象与封装这两个概念其实联系是很紧密的。 而我确实想要搞清楚具体的含义,今天进行一个总结。 参考书目:《代码大全 2th》《C++ Primer 5th》以及网上的一些资料。 其中关于抽象与封装,以代码

2015-10-31 18:40:02 4063

原创 《C++并发编程实战》读书笔记3---线程同步

1.什么是线程同步 线程同步就是说希望一个线程等待特定事件的发生或是一个条件变为true。 2.线程同步的种方法 (1)条件变量(condition_variable) 条件变量就是说,用一个专门的条件变量对象data_cond,它是多个thread都可以访问的。 在一个thread中准备好另一个thread等待的条件后,就通知那个等待线程。 等待线程收到通知,就知道条件满足,

2015-10-29 21:50:47 431

原创 C++11学习笔记6---std::function

1.C++有哪些可调用对象 ①函数 ②函数指针 ③lamdba表达式(CP5 P346) ④bind创建的对象(CP5 P354) ⑤重载了函数调用运算符的类(CP5 P506) 2.为什么要使用std::function 过程是一系列操作的抽象,有时我们需要对过程进一步抽象。 当5种对象具有相同的调用形式与返回类型时,我们希望对于C++的5种可调用对象不加区别地使用。

2015-10-29 11:11:04 440

原创 C++11学习笔记5---智能指针

1.为什么要使用动态内存 ①程序不知道自己需要使用多少对象(比如容器) ②程序不知道所需对象的准确类型(比如不知道是基类还是其派生类) ③程序需要在多个对象间共享数据(比如C++ Primer 5th p404的Blob类) 2.为什么要使用智能指针来管理内存 老的方式:new+delete会忘记释放造成泄露,或者过早释放造成空悬指针。 新的方式:shared_ptr+make

2015-10-29 10:20:08 624

原创 C++11学习笔记4---lambda表达式

当向一个函数传递一个lambda时,同时定义了一个新类型和该类型的一个对象。 传递的参数就是此编译器生成的类类型的未命名对象。 1.为什么要使用lambda表达式? 有一些泛型算法,比如里面的sort(),对于一定对象的比较需要用一个谓词或者可调用对象重载比较操作。 这个时候可以使用lambda表达式作为参数。很方便。 lambda就是一个匿名函数,在一些需要却又不想要为

2015-10-28 18:57:27 355

原创 C++11学习笔记3---auto&decltype

其实不去探讨细节的话,这两个的内容蛮少的。 C++11中处理类型一般使用3种方式。 (1)类型别名 方式①使用typedef typedef double wages; typedef int socket; 方式②使用别名声明using using SI = Sales_item;  (2)auto 有时我们使用各种类作用域以及模板,造成类型名特别长,或者有时根本不知道

2015-10-28 11:11:51 305

原创 C++11学习笔记2---右值引用与移动构造函数

1.引入原因 (1)拷贝构造函数为什么使用常量引用 因为在函数的实参与形参的传递之中,对于很大的对象,如果使用值传递会耗费大量时间与资源。 如果只是传递引用就会好很多。所以使用引用。 我们不希望通过这个引用去改变参数原来的值,所以使用常量引用(const &)。 但是有时我们有希望,还是需要定义创建与传入的参数相同却又是独立的存储空间的对象。 这个时候我们可以在拷贝构造函数里面

2015-10-28 10:35:54 1196

原创 C++11学习笔记1---序

在阅读《C++并发编程实战》还有一些代码的时候,发现好多C++11的特性都不是很了解。 其实并不是想详细记录语言细节,只是想弄清楚每个特性能干什么,有哪些常用的场景。 本帖作为序,就按照网上看的一些重要特性,一个一个来记录想要看的内容吧。 1.右值引用与move构造函数 2.auto&decltype 3.lambda表达式 4.智能指针 5.std::function 6

2015-10-27 18:22:38 327

原创 Code:Blocks输入中文出现乱码

可能乱点了什么键,codeblocks会弹出提示说,为了保护我的信息,源文件自动转化为UTF-8编码。 然后,然后我发现自己.cpp文件里面的中文就变成乱码了。 在网上找到了解决办法。 1。修改源文件保存编码在:settings->Editor->gernal settings 看到右边的Encoding group Box了吗?如下图所示 2。修改

2015-10-26 21:21:58 2685 1

原创 struct内存安排

处理器:AMD x64 操作系统:win7 编译器:GCC 4.8.1 该条件下,char---1byte   int---4bytes  double---8bytes 本内容为我试验得到,所以会因为不同的试验平台等,还有试验设想的条件不全而出现结果会有偏差。 结论:不考虑位域(位域就是可以以bit为单位精确指定位数)情况,struct里面的内存安排,会根据里面的最大基

2015-10-26 10:06:27 401

原创 Git常用操作

这里记录目前我最常用的操作。 因为是最常用的,就不包括什么建立仓库,设定使用者信息啊,这种设定一次的了。 先上一张图 1.分支管理 查看本地分支:git branch 查看所有分支(本地+远程):git branch -a 创建分支:git branch 切换分支:git checkout 创建+切换分支:git

2015-10-24 15:03:52 339

原创 制作网页5---注意事项2

1.网页显示中文为乱码。 如果源码通过记事本改过,一定要保存为UTF8编码形式。 然后httpd.conf也要设置AddDefaultCharset UTF8 这样网页显示中文就没有问题了。

2015-10-20 20:16:03 322

原创 《C++并发编程实战》读书笔记2---在线程间共享数据

整本书的2-4章,就是介绍C++11的标准库关于多线程的基本使用。 第2章介绍thread,用于创建多线程。 第3章介绍mutex,用于共享数据。 第4章介绍condition_variable和future,用于同步线程。 本帖总结第3章内容。主要的类是互斥量,std::mutex还有上锁的模板类std::lock_guard 本章的主要概念为:竞争条件(race condit

2015-10-20 14:19:48 941

原创 《C++ Primer 5th》读书笔记3---关于类的构造函数

参考文献为《C++ Primer 5th》 1.默认构造函数(P236) 默认构造函数:类通过一个特殊的构造函数来控制默认初始化过程,这个函数叫做默认构造函数。 默认构造函数无须任何实参。 合成默认构造函数:编译器在发现类中不包含任何构造函数的情况下才会替我们生成一个默认构造函数。 所以在我们定义了构造函数的时候,如果需要有默认的构造方式,就必须手动定义默认构造函数。

2015-10-19 18:39:58 392

原创 《C++并发编程实战》思考1---线程的结束

#include #include #include void *fun1(void *vargp) {     int i;     printf("hello, this is t2\n");     //pthread_join(*vargp, NULL);     i = pthread_cancel(*((pthread_t *) vargp));     pri

2015-10-17 17:00:48 527

原创 《C++并发编程实战》读书笔记1---多线程基本使用

这本书,是针对C++11的多线程标准库的一本书。 书的作者便是C++这个库的作者,读了第二章,作者对于这个库确实是娓娓道来,另外作者也同时会给出一些并发编程的注意事项。 本帖的结构如下 1.基本函数使用 2.线程joinable的概念 3.多线程编程注意事项 1.基本函数使用 ①constructor 使用一个函数,或者是一个callable object来初始化一

2015-10-17 11:36:27 1307

原创 《UNIX网络编程》读书笔记3---IO模型与IO复用以及shutdown

这是本书最重要的内容。也是我最开始想要读本书的目的。 1.I/O模型 图6.6画地非常之好,所以感觉一图足以。 阅读这个内容,最好是先man select,看看它的参数以及返回值的意义。I/O复用的概念就好容易了解。 看了信号的内容,信号驱动式I/O就很容易理解了。 主要分为两个阶段,①数据从网络到内核②数据从内核到用户进程 而同步IO在②中都是阻塞的。异步IO在两个阶段都不会阻塞。

2015-10-16 10:20:56 381

原创 《UNIX网络编程》思考1---有关socket的几个重要概念

这里想要讲的就是几个概念,以及它们之间的关系。 概念:端口,进程,套接字描述符,TCP连接 1.TCP连接 TCP通信,是建立在TCP连接之上的。 可以把这个TCP连接,看成是一个管道(我这里对于进程间通信的那个pipe管道还不清楚概念,我这里说的管道就是一般的管道的意思),信息都是从管子的一端传到另一端的。 只要确定好了这个管道,通信就与其他东西无关了。 那么怎么唯一确定这个

2015-10-15 20:34:07 329

原创 《UNIX网络编程》读书笔记2---2-5章,套接字断开2,3事

关于TCP的几种关闭的边界条件 1.正常终止 出自书中P102-103 在连接established之后,从client程序键入Ctrl+d即EOF,client这边会有一个exit(0), 而多进程server那边也会有exit(0). 其实我开始感觉从这里既然在退出进程之前都没有调用close函数,而进程又退出了,最多退出了发送一个FIN, 但是不可能还能回复对于FIN的A

2015-10-14 21:40:15 595

原创 《UNIX网络编程》读书笔记1---简介和TCP/IP

这本书我不打算读完,因为很多细节更倾向于用库去封装,对于原理的东西更感兴趣, 所以我有兴趣研究一下本书的IO的认识,还有TCPv1以及UNP2 主要打算阅读的部分包括, 第一部分 第1,2章。 第二部分 第3-11章,而且非TCP部分我也想到用时再查看。重点关注I/O复用。 第三部分 任意选读。 本帖是记录简介以及TCP/IP基础的。 1.UNIX两大主要分支 BSD---

2015-10-14 15:21:41 611

原创 《深入理解计算机系统》读书笔记8--- 并发编程2

接下来的内容主要就是线程的安全性问题,分别为线程同步错误,死锁和竞争。 参考了文章:http://www.cnblogs.com/Jessy/p/3540724.html (1)同步错误 不同的线程对于共享变量的同时操作,使得最终结果出错。 一个简单的栗子,计数。 各个线程每完成一个任务,就对完成任务数+1. 到某一时刻,完成任务数累积到了5,这个时候A线程完成了任务,对任务数加1

2015-10-12 22:06:04 438

原创 《深入理解计算机系统》读书笔记7--- 并发编程1

CSAPP介绍了三种并发编程技术:(1)进程(2)I/O多路复用(3)线程 本帖总结前面两种,第三种将留到下一贴。 (1)基于进程的并发编程 核心函数就是fork。用父进程不停接受socket连接,fork创建子进程,用子进程来服务每一个client。 主要流程就是在echo服务器的基础上。 1.server会while循环阻塞在connfd=accept()那里。每当请求到达接受后,就

2015-10-12 17:16:45 547

原创 《深入理解计算机系统》读书笔记6--- 信号

1.信号 ①定义:信号是一种软件形式的异常。 一个信号就是一条小消息,他通知进程系统中发生了一个某种类型的事件。 ②本质:每种信号类型都对应于某种系统事件。 ③作用:硬件异常是由内核异常处理程序处理的,正常情况下对于用户是不可见的。 信号,作为一种软件异常,提供了一种机制,通知用户进程发生了这些异常,并可以编码对其进行处理。 2.信号的发送 原因:(1)内核检测到一个系统事件,比

2015-10-10 11:14:57 447

原创 制作网页4---注意事项1

1.为什么百度或者网易网页跳转的时候能看到关键字 比如 那是因为人家采用的提交方式是GET哦。 你采用POST,当然就看不见了。 2.关于html里面嵌套php的问题① 在html里面当然可以直接                                        PHP代码。。。。。。。                            ?> 这样嵌

2015-10-09 14:10:51 336

原创 制作网页3---XAMPP的配置(环境是Linux Ubuntu)

参考文章:http://www.111cn.net/sys/linux/65704.htm   用于(2) http://www.myhack58.com/Article/sort099/sort0102/2011/29494.htm 用于(1) 以xampp的安装目录/lampp,下面的文件夹或者目录就是在此目录之下的了。 所有的配置都在etc文件夹下面。 所有的可执

2015-10-08 21:53:10 450

原创 王垠关于编程语言的一些帖子,

王垠是编程语言方面的科学家,我很喜欢他对于程序设计语言的一些见解。 从很多角度都给与了我启发,当然它的博客里面的文章不只包括程序设计语言方面的。 本帖罗列一些我看到的他的关于程序语言的文章,摘抄一些我喜欢的话语,总结一些结论。 这里选取的文章并不是专门针对某一门语言的,而是介绍一类语言或者针对许多语言。 第5篇SQL,NoSQL以及数据库的实质,看似只是在说SQL实则不然。 谢谢王垠的分

2015-10-03 11:49:53 2214

Leetcode-cpp 2015.5更新

这是leetcode,一个开源项目,可以用于求职找工作,里面的算法尽量背诵,愿大家学到东西啦。

2015-07-04

Pointers in C

一本详细介绍C指针的书籍。完全是介绍C的指针的。有需要的朋友欢迎下载。

2014-07-24

空空如也

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

TA关注的人

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