C++
文章平均质量分 70
FishBear_move_on
github 地址 https://github.com/Jayhello
展开
-
最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)
http://blog.csdn.net/lanxuezaipiao/article/details/24845625导读1. 什么是序列化?2. 为什么要序列化?好处在哪里?3. C++对象序列化的四种方法4. 最常用的两种序列化方案使用心得正文1. 什么是序列化?程序员在编写应用程序的时候往往需转载 2014-12-23 16:11:17 · 626 阅读 · 0 评论 -
编程思想之多线程与多进程(1)——以操作系统的角度述说线程与进程
原文:http://blog.csdn.net/luoweifu/article/details/46595285 作者:luoweifu 转载请标名出处什么是线程什么是线程?线程与进程与有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识。我不能确保能把它讲的话,也不能确保讲的内容全部都正确。即使这样,我也希望尽可能地把转载 2015-07-06 19:32:18 · 520 阅读 · 0 评论 -
Qt学习之路_6(Qt局域网聊天软件)
http://www.cnblogs.com/tornadomeet/archive/2012/07/04/2576355.html 在上2次文章Qt学习之路_5(Qt TCP的初步使用) Qt学习之路_4(Qt UDP的初步使用) 中已经初步介绍了群聊功能和文件传输功能,这一节中主要在这个基础上加入一个私聊功能。 参考文献依旧是:《Qt及Qt Quick开发实战精解》转载 2015-07-06 19:33:58 · 1148 阅读 · 0 评论 -
static_cast, dynamic_cast, reinterpret_cast, const_cast区别
(使用vs2010所带的编译器) 转载请注明来源 http://www.cnblogs.com/jerry19880126/ 隐式转换(implicit conversion)short a=2000;int b;b=a;short是两字节,int是四字节,由short型转成int型是宽化转换(bit位数增多),编译器没有warning,如下图所示。转载 2015-07-26 23:17:46 · 520 阅读 · 0 评论 -
c++ 11 新特性
赖勇浩(http://laiyonghao.com)声明:本文源自 Danny Kalev 在 2011 年 6 月 21 日发表的《The Biggest Changes in C++11(and Why You Should Care)》一文,几乎所有内容都搬了过来,但不是全文照译,有困惑之处,请参详原文(http://www.softwarequalityconnection.com/2转载 2015-07-29 20:05:55 · 446 阅读 · 0 评论 -
sizeof小览
http://blog.csdn.net/scythe666/article/details/47012347一、文章来由—一道面试题迁出的探究我发现我已经形成一种习惯写来由了,以后看博客的时候可以让我回忆起为什么出现这个问题,我用什么方法解决的,既然形成习惯就让这个习惯保持下去吧。今天实验室师姐在看书,一处不解,是关于sizeof的,大家讨论此问题后,我一向信服做了才知道答案转载 2015-07-29 09:53:42 · 357 阅读 · 0 评论 -
C++ 智能指针详解
http://blog.csdn.net/xt_xiaotian/article/details/5714477C++ 智能指针详解 一、简介由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete。程序员忘记 delete,流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见。用智能指针便转载 2015-07-30 22:21:37 · 384 阅读 · 0 评论 -
move相关的杂项
背景为什么需要move语义,或者说增加move语义能给c++带来什么?运行效率是主要原因。c++重视运行效率,在不失程序抽象的基础上,想尽办法榨尽CPU的每一滴油水。@陈硕有一篇blog正确地实现了最简单的string类,其中的拷贝构造函数如下:String(const String& rhs) : data_(new char[rhs.size() + 1])转载 2015-07-30 16:28:20 · 378 阅读 · 0 评论 -
C++的函数隐藏、覆盖和重载
http://blog.csdn.net/lin49940/article/details/5553664 看了 林锐 的 《高质量编程指南》8.2.2 令人迷惑的隐藏规则. (这里的隐藏是指派生类的函数屏蔽了与其同名的基类函数) 这一节写得很好: 1. 把出现隐藏的情况列举出来了. 2.转载 2015-09-13 12:17:31 · 387 阅读 · 0 评论 -
google glog 使用方法
glog官方地址:https://code.google.com/p/google-glog/glog作用:日志库安装方法./configuremakemake installHello worldfoo_1.cpp[cpp] view plain copy#include int ma转载 2017-01-12 20:11:05 · 1164 阅读 · 0 评论 -
《Effective Modern C++》读书笔记
Tags: c++Note:为避免各种侵权问题,本文并没有复制原书任意文字(代码除外,作者已经声明代码可以被使用)。需要原书完整中文翻译的读者请等待官方译本的发布。正文为了让本文更加清晰,依然还是用条款的形式来介绍知识点。(但不能保证我写的条款就是原书的条款)条款7:考虑用新的变量初始化语法{}代替旧的()吧优点:用{}来初始化变量,可以避免转载 2017-01-19 17:55:22 · 2268 阅读 · 1 评论 -
Linux 下用 Clion 编写及调用共享库的实践
https://zetaoyang.github.io/post/2016/11/05/linux-shared-object.html尝试了一下,Windows 下 Codeblocks 利用 Mingw 编译器编写动态链接库,结果虽然 dll 是生成了,但过程还是不太满意。因为 dll 是 Windows 下才用到的,似乎用 GNU 的编译器不太合适,最终还是改用 VS2015 (转载 2017-05-02 14:48:37 · 12003 阅读 · 1 评论 -
gdb调试c++常用技巧
http://www.techbeamers.com/how-to-use-gdb-top-debugging-tips/GDB Tutorial: Essential Debugging Tips.Compile a Program with Debugging Symbols.Two Ways to Start a Program with GDB.Ho转载 2017-05-09 18:15:50 · 1084 阅读 · 0 评论 -
c++11 线程池实现以及示例
线程池的使用在工作中非常普遍,对于java,python而言线程池使用还是比较方便。去年年底由于工作需要,用c++搭建一套工程代码,需要使用线程池,但是C++中并没有现有的线程池,为了快速开发,以及代码的稳定还是google在github上面找到了一个不错的C++11实现的版本,然后做了一点修改(兼容服务器gcc4.7)。通过这一个线程池的实现,收获如下:1. 更加深入的理解了线程池2. 熟悉原创 2018-03-22 21:00:41 · 2794 阅读 · 1 评论 -
c++ set unordered_set区别
c++ std中set与unordered_set区别和map与unordered_map区别类似:set基于红黑树实现,红黑树具有自动排序的功能,因此map内部所有的数据,在任何时候,都是有序的。unordered_set基于哈希表,数据插入和查找的时间复杂度很低,几乎是常数时间,而代价是消耗比较多的内存,无自动排序功能。底层实现上,使用一个下标范围比较大的数组来存储元素,形成很多的桶,...原创 2018-09-06 20:55:33 · 20438 阅读 · 0 评论 -
c++ mnist转化为opecv Mat
本文主要介绍如何使用C++将mnist 数据集转化为Opencv Mat,问题来源主要代码以及运行示例如下:uint32_t swap_endian(uint32_t val) { val = ((val << 8) & 0xFF00FF00) | ((val >> 8) & 0xFF00FF); re原创 2018-09-20 20:09:48 · 1005 阅读 · 0 评论 -
我的VS2010+VAssistX
最近越来越觉得VAssistX好用,可能是以前没有去仔细研究过吧,也可能是因为我是个快捷键控吧,不管怎样,用或不用,方便或不方便,它就是那里,一动也不动,进入正题,给大家介绍下我的使用配置:(我只是引玉,你可以抛砖)VS2010开发C++程序:1 安装好VAS打开VS2010之后,首先关闭VA outline与VA View窗口,个人感觉没啥用,2 关掉VS的状态栏,感觉它转载 2015-05-22 09:15:40 · 494 阅读 · 0 评论 -
Visual Stdio的中的dll和lib
http://blog.csdn.net/dodomouse/article/details/12843821自己的一点点小笔记,留给将来需要的时候看看。运行环境:windows7和VS2010对于dll和lib两者的关系,需要理解的一个概念是编译时和运行时。lib是编译时的东西,在lib里面包含了方法名和方法所在的dll名字,可以用dump转载 2015-05-14 08:56:48 · 579 阅读 · 0 评论 -
strcpy函数的实现
http://blog.csdn.net/gpengtao/article/details/7464061大家一般认为名不见经传strcpy函数实现不是很难,流行的strcpy函数写法是:[cpp] view plaincopychar *my_strcpy(char *dst,const char *src) {转载 2015-02-02 14:53:27 · 440 阅读 · 0 评论 -
#define和typedef的用法与区别及面试问题
typedef和#define的用法与区别一、typedef的用法在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间,实例像:typedef int INT;typedef int ARRAY[10];typedef (int*) pINT;typedef可转载 2015-01-14 21:33:08 · 610 阅读 · 0 评论 -
C内存管理一 概述
我们写了这么多年的程序员,可能理论方面还比不上大学生。有人 "嘘"我了,如果有能回答以下几个问题的同学请举手:1.面试经常遇到:同学请说说堆栈的区别?2.同学请说说一个函数在堆栈中调用过程(首先要知道函数过程是保存在什么中的)。3.静态变量、全局变量、局部变量、常量等哪些是保存在堆中,哪些是栈中,哪些是静态区域中。其实回答第一个我问题,第二和第三问题就是........还真有人举手转载 2014-12-29 21:04:09 · 391 阅读 · 0 评论 -
C++ string中的几个小陷阱,你掉进过吗?
C++开发的项目难免会用到STL的string,使用管理都比char数组(指针)方便的多,但在得心应手的使用过程中也要警惕几个小陷阱,避免我们项目出bug却迟迟找不到原因。1. 结构体中的string赋值问题直接通过一个例子说明,下面的例子会输出什么:[cpp] view plaincopy#include #i转载 2015-02-08 12:05:37 · 479 阅读 · 0 评论 -
C++编程思想重点笔记
C和C++指针的最重要的区别在于:C++是一种类型要求更强的语言。就void *而言,这一点表现得更加突出。C虽然不允许随便地把一个类型的指针指派给另一个类型,但允许通过void *来实现。例如:bird* b;rock* r;void* v;v = r;b = v;C++不允许这样做,其编译器将会给出一个出错信息。如果真的想这样做,必须显式地使用映射,通知编译器和读者。转载 2015-02-08 12:02:38 · 587 阅读 · 0 评论 -
C++中的单例模式
http://blog.csdn.net/hackbuteer1/article/details/7460019 单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需要一条且只需要一条电话线,操作转载 2015-03-19 07:21:58 · 381 阅读 · 0 评论 -
C语言中volatile关键字的作用
http://blog.csdn.net/tigerjibo/article/details/7427366 (嵌入式牛人)一.前言1.编译器优化介绍:由于内存访问速度远不及CPU处理速度,为提高机器整体性能,在硬件上引入硬件高速缓存Cache,加速对内存的访问。另外在现代CPU中指令的执行并不一定严格按照顺序执行,没有相关性的指令可以乱序执行,以充分利用CPU的指令流水转载 2015-03-03 16:37:02 · 372 阅读 · 0 评论 -
怎么有效的防止内存泄漏
http://blog.csdn.net/couhujia/article/details/8474905首先说说标题可能取得有些大,但是可以理解为编程过程中有效的防止写的代码中有内存泄漏。好了废话不多说了,首先看下面一段代码。[cpp] view plaincopyclass Image { public:转载 2015-03-03 22:17:46 · 575 阅读 · 0 评论 -
const 详解
http://blog.csdn.net/hackbuteer1/article/details/7459212 今天看了一下C++ Primer中关于const用法的介绍,讲得很好, 收益匪浅,于是做一个总结,方便以后再次查看。 但是c++在c的基础上新增加的几点优化也是很耀眼的,就const直接可以取代c中的#define以下几点很重要,学不好后果也也很严重。 一、c转载 2015-03-19 07:42:00 · 379 阅读 · 0 评论 -
c++面试题
1.new、delete、malloc、free关系delete会调用对象的析构函数,和new对应free只会释放内存,new调用构造函数。malloc与free是C++/C语言的标准库函数,new/delete是C++的运算符。它们都可用于申请动态内存和释放内存。对于非内部数据类型的对象而言,光用maloc/free无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之转载 2015-03-04 22:40:53 · 351 阅读 · 0 评论 -
C++智能指针简单剖析
http://blog.csdn.net/lanxuezaipiao/article/details/41603883导读最近在补看《C++ Primer Plus》第六版,这的确是本好书,其中关于智能指针的章节解析的非常清晰,一解我以前的多处困惑。C++面试过程中,很多面试官都喜欢问智能指针相关的问题,比如你知道哪些智能指针?shared_ptr的设计原理是什么?如果让你转载 2015-03-08 22:36:07 · 435 阅读 · 0 评论 -
C++ string中的几个小陷阱,你掉进过吗?
http://blog.csdn.net/lanxuezaipiao/article/details/24885811C++开发的项目难免会用到STL的string,使用管理都比char数组(指针)方便的多,但在得心应手的使用过程中也要警惕几个小陷阱,避免我们项目出bug却迟迟找不到原因。1. 结构体中的string赋值问题直接通过一个例子说明,下面的转载 2014-12-23 16:08:20 · 617 阅读 · 1 评论 -
C/C++求职宝典21个重点笔记(常考笔试面试点)
http://blog.csdn.net/lanxuezaipiao/article/details/41557307char c = '\72'; 中的\72代表一个字符,72是八进制数,代表ASCII码字符“:”。10*a++ 中a先进行乘法运算再自增(笔试中经常喜欢出这类运算符优先级容易混淆的输出问题)。const和static的作用转载 2014-12-23 16:02:26 · 591 阅读 · 0 评论 -
static在C和C++中的用法和区别
http://blog.csdn.net/skyereeee/article/details/8000512static主要有三个作用:(1)局部静态变量(2)外部静态变量/函数(3)静态数据成员/成员函数前两种C和C++都有,第三种仅在C++中有,下面分别作以下介绍:一、局部静态变量在C/C++中, 局部变量按照存储形式转载 2015-03-09 15:30:39 · 1063 阅读 · 0 评论 -
C/C++求职宝典21个重点笔记(常考笔试面试点)
原文 http://blog.csdn.net/lanxuezaipiao/article/details/41557307char c = '\72'; 中的\72代表一个字符,72是八进制数,代表ASCII码字符“:”。10*a++ 中a先进行乘法运算再自增(笔试中经常喜欢出这类运算符优先级容易混淆的输出问题)。const和static的作转载 2014-12-03 18:22:00 · 646 阅读 · 0 评论 -
深入 char * ,char ** ,char a[ ] ,char *a[] 内核
http://blog.csdn.net/daiyutage/article/details/8604720 C语言中由于指针的灵活性,导致指针能代替数组使用,或者混合使用,这些导致了许多指针和数组的迷惑,因此,刻意再次深入探究了指针和数组这玩意儿,其他类型的数组比较简单,容易混淆的是字符数组和字符指针这两个。。。下面就开始剖析一下这两位的恩怨情仇。。。 1 数组的本质转载 2015-03-13 19:15:58 · 434 阅读 · 0 评论 -
ubuntu16.04安装boost
#sudo apt-cache search boost你将看到很多文件信息, libboost-dev, 直接安装此文件即可: # sudo apt-get install libboost-dev 这样就安装成功了。 或者使用源码安装: 1. 下载源码文件(或者选择不同的版本如1.6.0):wget -O boost_1_55_0.tar.gz htt...原创 2017-01-04 20:49:12 · 20016 阅读 · 2 评论