自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

转载 Qt5 模块简介

转自:http://blog.chinaunix.net/uid-24219701-id-4042173.htmlQt 5 与 Qt 4 最大的一个区别之一是底层架构有了修改。Qt 5 引入了模块化的概念,将众多功能细分到几个模块之中。Qt 4 也有模块的概念,但是是一种很粗的划分,而 Qt 5 则更加细化。本节主要对 Qt 5 的模块进行一个简单的介绍,以便以后大家需要哪些功

2017-01-15 23:52:12 446

原创 统一的初始化方式

在C++98/03中,对象有多种初始化方式,如列表初始化、拷贝初始化、直接初始化、值初始化、默认初始化......在C++11中有了统一的初始化方式:列表初始化,即用一组花括号括起来的初始值初始化对象(甚至是为对象赋新值时)使用方式: int a1 = { 0 }; int a2{ 0 };注:当列表初始化用于基本数据类型变量时,如果初始值存在丢失信息的风险,编译器将会报

2017-01-11 01:09:33 370

原创 模板的细节改进

模板的别名传统方法使用关键字typedef定义类型的别名,他有一些限制,比如无法定义模板类型的别名考虑这样一个场景:typedef std::map map_int_t;//........typedef std::map map_str_t;//........我们需要一个固定以std::string为key的map,他可以映射到int或是另一个std::string,但为

2017-01-10 23:37:05 268

转载 【C++11学习笔记】返回类型后置语法

转自: http://blog.csdn.net/yockie/article/details/51731281本次学习3个知识点: (1)auto推导类型 (2)decltype推导表达式的类型 (3)返回类型后置语法泛型编程中经常遇到的写一个加法函数:template typename R, typename T, typename U>R add(T t

2017-01-09 23:43:45 254

原创 类型推导之decltype

decltype关键字跟auto一样,也是用来实现类型推导,但是auto只能根据变量的初始化表达式来推导,即必须初始化。decltype也是在编译时推导,不会实际计算表达式的值,类似于一元运算符sizeof如: decltype (func()) sum = x; //sum的类型为函数func的返回值的类型,这里并不调用函数func推导规则:1、如果对

2017-01-09 21:36:24 457

原创 自动推导之auto关键字

auto关键字auto关键字可以实现类型推导,但auto关键字不是一个实际的类型声明,仅仅是一个类型声明的占位符,由编译器在编译时推导变量类型,属于隐式类型声明auto关键字的使用:1、用auto声明变量时必须同时初始化 如: auto i; //错误2、用auto在一条语句中声明多个变量时,该语句中所有变量的初始基本数据类型必须一致 如: auto ss = 0, pi

2017-01-08 23:48:03 523

原创 linux线程同步

0 概述  所谓同步,就是给多个线程规定一个执行的顺序(或称为时序),要求某个线程先执行完一段代码后,另一个线程才能开始执行。  第一种情况:多个线程访问同一个变量:  1. 一个线程写,其它线程读:这种情况不存在同步问题,因为只有一个线程在改变内存中的变量,内存中的变量在任意时刻都有一个确定的值;  2. 一个线程读,其它线程写:这种情况会存在同步问题,主要是多个线程在同时写

2017-01-08 17:13:21 479

原创 linux线程

进程:硬盘上的一个静态的程序在内存中动态执行的实例 操作系统分配资源的基本单位 每个进程拥有自己独立的内存空间。 在操作系统下构成单独执行流的单位线程:轻量级进程, 是操作系统调度的最小单元, 线程只能存在于进程中, 进程死亡时其中的线程也会死亡 在进程下构成单独执行流的单位使用进程的优势:(1)CPU时分复用,单核心CPU可以实现宏观上的并

2017-01-08 12:15:43 218

转载 实例浅析epoll的水平触发和边缘触发,以及边缘触发为什么要使用非阻塞IO

转自:http://www.cnblogs.com/yuuyuu/p/5103744.html一.基本概念                                                         我们通俗一点讲:Level_triggered(水平触发):当被监控的文件描述符上有可读写事件发生时,epoll_wait()会通知处理程序去读

2017-01-07 16:20:40 341

原创 epoll边缘触发

条件触发(Level Trigger):只要满足事件发生条件就不停触发,直到不满足触发条件(epoll默认触发方式,select()也是条件触发方式)边缘触发(Edge Trigger):从不满足事件发生条件到满足事件发生条件时触发服务器使用边缘触发:1、需要通过errno全局变量判断错误原因,为了访问errno全局变量,需要包含头文件errno.h 2、使用非阻塞式I/O

2017-01-07 15:54:29 464

原创 优于select的epoll

select与epollselect的缺点1、在linux系统下单个进程能打开的文件描述符的最大数量有限制(#define __FD_SETSIZE    1024)2、事件发生后需要遍历注册的所有对象的集合(必须遍历才能知道是谁发生了事件)3、在每次调用select函数时都要向内核拷贝(注册)需要监视的对象信息(由于函数调用之后会修改描述符的集合,因此再次调用时某些对象相当于相当

2017-01-07 13:18:10 317

原创 套接字与标准IO及IO流分离

标准I/O的优点1、具有良好的可移植性(遵从ANSI C标准)2、可以利用缓冲避免频繁的系统调用从而提高性能 使用标准I/O编写操作套接字时的缺点1、  可能频繁调用fflush函数(保证I/O缓冲中的数据及时进入套接字输出缓冲)2、  需要将创建套接字时返回的文件描述符转化为FILE指针 将文件描述符转化为FILE指针FILE *fdopen(int fild

2017-01-06 08:05:11 541

转载 标准I/O库

转自:http://blog.csdn.net/kangroger/article/details/38708297标准的I/O是由ANSI C标准规定的,不仅可以在UNIX/Linux上使用,还可以在其他地方使用。标准I/O库对应文件的操作是围绕流(stream)进行的。当用标准I/O库打开或创建文件时,便使一个流与一个文件相关联。标准I/O库的函数对于文件的描述是基于FILE对象指针的

2017-01-05 21:12:55 211

转载 文件I/O和标准I/O的区别

转自:http://m.blog.csdn.net/article/details?id=51711231一、先来了解下什么是文件I/O和标准I/O:文件I/O:文件I/O称之为不带缓存的IO(unbuffered I/O)。不带缓存指的是每个read,write都调用内核中的一个系统调用。也就是一般所说的低级I/O——操作系统提供的基本IO服务,与os绑定,特定于linix或

2017-01-05 19:34:49 442

原创 多播与广播

多播:向加入特定组的大量主机以UDP的方式同时传送数据 特点:1、发送方只针对特定多播组发送一次数据2、在特定多播组内所有接受者都会收到发往改组的数据3、组数在IP(组播属于D类IP)地址范围内任意增加4、基于UDP完成,多播数据包格式与UDP数据包相同5、借助路由完成数据包的复制、传输(到主机) 设置TTL与加入多播组要向使用多播必须设置TTL,TTL决定

2017-01-05 00:20:28 273

转载 fcntl函数详解

转自:http://blog.csdn.net/pbymw8iwm/article/details/7974789功能描述:根据文件描述词来操作文件的特性。#include #include  int fcntl(int fd, int cmd); int fcntl(int fd, int cmd, long arg); int fcntl(int fd, i

2017-01-04 21:58:05 212

原创 send_recv_writev_readv

send与recv原型:ssize_t send(int sockfd, const void *buf,size_t nbytes, int flags); ssize_t recv(int sockfd, const void *buf,size_t nbytes, int flags); 最后一个参数可取值MSG_OOB        发送/接收带外数据(out-

2017-01-04 06:30:49 471

原创 I/O复用

多进程与I/O复用之前为了构建并发服务器,采用多进程的方式,一旦有客户端连接就会创建新进场,但由于创建新进场需要耗费大量的CPU资源与内存资源,且进程之间拥有完全独立的内存空间,还需要使用IPC;I/O复用则不需要创建多个进程,采用事件监听的方式,一旦事件发生了才去处理I/O复用https://www.zhihu.com/question/32163005/answer/55772739

2017-01-03 19:13:28 288

原创 Qt注意事项

不要使用拖拽控件!!!不要使用拖拽控件!!!不要使用拖拽控件!!!

2017-01-03 17:13:11 271

空空如也

空空如也

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

TA关注的人

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