自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 资源 (5)
  • 收藏
  • 关注

转载 信号和槽机制

转自(稍作修改):http://devbean.blog.51cto.com/448512/193918信号/槽机制信号槽机制是Qt编程的基础。通过信号槽,能够使Qt各组件在不知道对方的情形下能够相互通讯。这就将类之间的关系做了最大程度的解耦。 槽函数和普通的C++成员函数没有很大的区别。如果要说区别,那就是,槽函数可以和一个信号相连接,当这个信号发生时,它可以被自动调用。connect语句con

2016-07-28 10:29:47 382

转载 MainWindow

转自(稍作修改):http://devbean.blog.51cto.com/448512/193918Qt的GUI程序也有一个常用的顶层窗口,叫做MainWindow。difference between Dialog and widget and QMainWindowA widget is an object that can be displayed on the screen. For

2016-07-28 10:29:17 1126

转载 find-dialog

转自(稍作修改):http://devbean.blog.51cto.com/448512/193918查找对话框首先新建一个工程,就叫FindDialog! 当然还是Qt Gui Application,然后最后一步注意,Base Dialog选择QDialog,而不是默认的QMainWindow,因为我建立对话框,名字就叫finddialog,Ganarate form还是不要的。然后Fini

2016-07-28 10:28:37 1149 1

转载 Qt简介

转自(稍作修改):http://devbean.blog.51cto.com/448512/193918简介Qt是一个著名的C++库——或许并不能说这只是一个GUI库,因为Qt十分庞大,并不仅仅是GUI。使用Qt,在一定程序上你获得的是一个“一站式”的服务:不再需要研究STL,不再需要C++的,因为Qt有它自己的QString等等。或许这样说很偏激,但Qt确实是一个“伟大的C++库”。 我们所使用

2016-07-28 10:26:48 512

原创 文章标题

ifconfig命令windows中的ipconfig命令行工具,它被用来获取网络接口配置信息并对此进行修改。 Linux系统拥有一个类似的工具,也就是ifconfig(interfaces config)。通常需要以root身份登录或使用sudo以便在Linux机器上使用ifconfig工具。依赖于ifconfig命令中使用一些选项属性,ifconfig工具不仅可以被用来简单地获取网络接口配置信

2016-07-25 00:55:45 293

转载 Libevent学习:介绍与安装

参考: 官网:http://libevent.org http://blog.csdn.net/sparkliang/article/details/4957667 http://blog.csdn.net/majianfei1023/article/details/464857051. Libevent简介Libevent是一个轻量级的开源高性能网络库,使用者众多,研究者更甚。Libeven

2016-07-22 10:30:03 755

转载 如何定位内存泄漏?

1. 什么是内存泄漏 内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的、大小任意的(内存块的大小可以在程序运行期决定)、使用完后必须显示释放的内存。应用程序一般使用malloc、realloc、new等函数从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块。否则,这块内存就不能被再次使用,造成这块内存泄漏。2. 内存泄漏的检测C++程序缺乏相应的手段

2016-07-20 11:43:52 7270

原创 C++11:随机数库

#include <iostream>#include <string>#include <ctime>using namespace std;#include <random>int main(){ //C库的随机数 srand((unsigned)time(0)); //使用时间作为种子,初始化随机数 for (int i = 0; i < 10; i++){

2016-07-19 00:39:24 468

原创 boost::asio 的daytime客户端和服务器实例

1. 服务器端server.h#include <boost/asio.hpp>#include <boost/array.hpp>using boost::asio::ip::tcp;using namespace boost::asio;#include <memory>#include <utility>#include <vector>#include <ctime>#incl

2016-07-18 01:12:53 838

原创 C++ 常用泛型算法的使用

#include <algorithm>#include <numeric>#include <iterator>#include <vector>#include <iostream>#include <functional>using namespace std;//template<typename T>void printing(const vector<int> &vec){

2016-07-17 17:32:33 1075

原创 protobuf反射机制

参考: https://xiongjun.info/2016/02/16/mqueue4/ http://blog.csdn.net/solstice/article/details/63001081. 网络编程中使用protobuf的两个问题Google Protocol Buffers (Protobuf) 是一款非常优秀的库,它定义了一种紧凑的可扩展二进制消息格式,特别适合网络数据传输。它

2016-07-17 11:08:43 2912

原创 Protobuf简单例子

可参考Protobuf的官网例子: https://developers.google.com/protocol-buffers/docs/cpptutorial第一步:设计Person对象的proto文件(person.proto),Protobuf编译器利用它生成C++文件(person.pb.h、person.pb.cc)person.proto 文件package Test; mess

2016-07-16 23:09:16 3429

原创 boost::asio名字空间中的deadline_time类:定时器

定时器是asio库中最简单的一个IO模型,提供等候时间终止的功能。定时器功能的主要类是:deadline_timer类,类摘要如下使用定时器时的头文件:#include <boost/asio.hpp>#include <boost/date_time/posix_time/posix_time.hpp>using namespace boost::asio;1. 同步定时器//同步定时器的用

2016-07-16 17:21:23 973

原创 Boost log库的使用

1. Boost的log库最简单的用法#include <boost/log/trivial.hpp>void log_test(){ BOOST_LOG_TRIVIAL(trace) << "A trace severity message"; BOOST_LOG_TRIVIAL(debug) << "A debug severity message"; BOOST_LO

2016-07-16 11:23:37 844

原创 条件变量实例:生产者-消费者模式的后进先出型(std::stack)缓冲区

综合应用boost::thread库(thread, mutex, condition_variable_any)实现的 生产者-消费者模式 后进先出型(std::stack)缓冲区 stack可以经过轻微修改使用队列替换。#include <boost/thread.hpp>using namespace boost;#include <stack>#include <iostr

2016-07-16 01:04:43 639

原创 boost::thread库 并发编程

所在文件和命名空间:#include <boost/thread.hpp>using namespace boost;1. 时间功能多线程编程经常要用到超时处理,需要表示时间的概念,thread库直接利用date_tiem库提供对时间的支持。this_thread::sleep(posix_time::seconds(2)); //当前线程睡眠两秒//this_thread是thread的子命

2016-07-15 10:26:39 3150

原创 boost::signal2 信号/插槽(线程安全的观察者模式)

signals2基于Boost的另一个库signals,实现了线程安全的观察者模式。在signals2中,观察者模式被称为信号/插槽(signals and slots),它是一种函数回调机制,一个信号关联了多个插槽,当信号发出时,所有关联它的插槽都会被调用。signals2位于名字空间 boost::signals2 ,头文件<boost/signals2.hpp>,即:#include <bo

2016-07-15 10:25:12 6616

原创 boost::filesystem 库(文件系统)

filesystem 库是一个可移植的文件按系统操作库。可以跨平台操作目录、文件等。#include <boost/filesystem.hpp>using namespace boost::filesystem;#include <iostream>using namespace std;void os_test(){ path p1("./a_dir"); cout <<

2016-07-14 17:44:52 813

原创 boost::program_options 解析命令行参数

提供强大的命令行参数处理功能,不仅能够分析命令行,也能够从配置文件和环境变量中获取参数,实现了分出完善的程序配置选项处理功能。program_options 库的解析程序选项功能由三个基本组件构成:选项描述器:定义选项和选项的值分析器:依据选项描述器的定义解析命令行参数或者数据文件存储器:把分析器的结果保存起来共程序使用boost::options 库的使用实例:#include <boo

2016-07-14 16:51:54 2149

原创 Boost 实用工具:noncopyable、BOOST_BINARY宏、BOOST_CURRENT_FUNCTION宏、bitset类型

1. boost::noncopyable位于<boost/noncopyable.hpp>中2. BOOST_BINARY宏位于<boost/utility/binary.hpp>中3. BOOST_CURRENT_FUNCTION宏位于<boost/current_function.hpp>中 与其类似的还有__FILE__ //所在文件__LINE__ //所在行号__FUNCITO

2016-07-14 10:08:38 1046

原创 C++11:lambda表达式、bind函数、function类型

#include <iostream>#include <string>using namespace std;//lambda表达式:表示一个可调用单元,理解为一个未命名的内联函数。//[capture list] (parameter list) -> return type { function body }void lambda_test(){ //可以忽略参数列表和返回类

2016-07-13 15:49:09 753

原创 c++11:正则表达式(re)

//#include <boost/regex.hpp>//using namespace boost;#include <regex>#include <string>#include <iostream>using namespace std;void regex_test(){ string pattern("[^c]ei"); pattern = "[[:alph

2016-07-13 14:33:32 1044

转载 并查集算法-动态连通性

介绍解决动态连通性一类问题的一种算法,使用到了一种叫做并查集的数据结构,称为Union-Find。动态连通性的应用场景: 网络连接判断: 如果每个pair中的两个整数分别代表一个网络节点,那么该pair就是用来表示这两个节点是需要连通的。那么为所有的pairs建立了动态连通图后,就能够尽可能少的减少布线的需要,因为已经连通的两个节点会被直接忽略掉。并查集(Union-Find)算法介绍 htt

2016-07-13 10:49:36 510

原创 ubuntu安装protocol buffer

protocol buffers:(1) 在 https://developers.google.com/protocol-buffers/docs/downloads 下载protobuf-2.6.1.tar.gz(2) 解压(3) cd protobuf-2.6.1(4) ./configure(5) make make check make install (6) 添加到libvi

2016-07-08 13:15:21 2450

原创 Boost 内存管理(smart_ptr库,pool库)

1. RAII机制为了管理内存等资源,C++程序员通常采用RAII机制(资源获取即初始化,Resource Acquisition Is Initialization),在使用资源的类的构造函数中申请资源,然后使用,最后在析构函数中释放资源。 1. 在栈上创建对象(局部对象):RAII机制正常工作,当离开作用域时,对象会自动销毁从而调用析构函数释放资源 2. 在堆上创建对象,使用new操

2016-07-07 15:32:24 417

Visual_Assist_X

该助手适用于VS2013和VS2012等最新vs编译器,方便使用,破解版。

2016-01-15

Head First Design Patterns

《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。前言先介绍这本书的用法;第1章到第11章陆续介绍的设计模式为Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod、Iterator、Composite、State、Proxy。最后三章比较特别。第12章介绍如何将两个以上的设计模式结合起来成为新的设计模式(例如著名的MVC模式),作者称其为复合设计模式(这是作者自创的名称,并非四人组的标准名词),第13章介绍如何进一步学习设计模式,如何发觉新的设计模式等主题,至于第14章则很快地浏览尚未介绍的设计模式,包括Bridge、Builder、Chain of Responsibility、Flyweight、Interpreter、Mediator、Memento、Prototype,Visitor。第1章还介绍了四个○○基本概念(抽象、封装、继承、多态),而第1章到第9章也陆续介绍了九个○○原则(Principle)。千万不要轻视这些○○原则,因为每个设计模式背后都包含了几个○○原则的概念。很多时候,在设计时有两难的情况,这时候我们必须回归到○○原则,以方便判断取舍。可以这么说:○○原则是我们的目标,而设计模式是我们的做法。

2015-11-13

深度探索C++对象模型

这本书探索“对象导向程序所支持的C++对象模型”下的程序行为。对于“对象导向性质之基础实现技术”以及“各种性质背后的隐含利益交换”提供一个清楚的认识。检验由程序变形所带来的效率冲击。提供丰富的程序范例、图片,以及对象导向观念和底层对象模型之间的效率测量。

2015-11-13

STL源码剖析

这本书所呈现的源码,使读者看到vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;看到各种算法(排序、查找、排列组合、数据移动与复制技术)的实现;甚至还能够看到底层的memory pool和高阶抽象的traits机制的实现。

2015-09-23

空空如也

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

TA关注的人

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