
C++
算法学习者
计算机各种知识学习笔记
展开
-
运行时错误:terminate called after throwing an instance of 'std::logic_error'
terminate called after throwing an instance of 'std::logic_error' what(): basic_string::_S_construct NULL not valid 主要原因:对一个空指针进行操作。 例如:char* p = NULL:string str(p); //运行时报错转载 2017-03-02 11:43:42 · 14925 阅读 · 0 评论 -
C++——多线程编程(一)std::thread
(一)与C++11多线程相关的头文件C++11 新标准中引入了四个头文件来支持多线程编程,他们分别是< atomic> ,< thread>,< mutex>,< condition_variable>和< future>。 •< atomic>:该头文主要声明了两个类, std::atomic 和 std::atomic_f...转载 2018-03-12 15:07:41 · 711 阅读 · 0 评论 -
GCC5.4安装
1.下载镜像站点:https://gcc.gnu.org/mirrors.html速度还不错的:ftp://ftp.mirrorservice.org/sites/sourceware.org/pub/gcc/releases/2.解压安装依赖库./contrib/download_prerequisites3.配置./configure --dis转载 2018-01-03 14:51:49 · 2998 阅读 · 0 评论 -
Linux下安装GCC5.3.0(亲测有效)
对于linux小白来说,只需要先知道怎么安装,至于为什么等学了linux再说吧。。知识不系统的坏处啊!首先,一般ubuntu上都预装了低级版本的Gcc,完全可以应付刷OJ时的C+Class+STL的风格,但因为寒假里非常固执地要看C++primer,所以只能把编译器升级到最新版本以符合C++11/14标准。安装GCC必备的几个东西:1。gcc5.3.0的源代码压缩包转载 2018-01-03 13:57:19 · 3798 阅读 · 0 评论 -
ZMQ简介
一、ZeroMQ的背景介绍官方: “ZMQ(以下ZeroMQ简称ZMQ)是一个简单好用的传输层,像框架一样的一个socket library,他使得Socket编程更加简单、简洁和性能更高。是一个消息处理队列库,可在多个线程、内核和主机盒之间弹性伸缩。ZMQ的明确目标是“成为标准网络协议栈的一部分,之后进入Linux内核”。现在还未看到它们的成功。但是,它无疑是极具前景的、并且是人们更加需转载 2017-09-16 15:29:19 · 6981 阅读 · 0 评论 -
C++11:深入理解右值引用,move语义和完美转发
深入右值引用,move语义和完美转发转载请注明:http://blog.youkuaiyun.com/booirror/article/details/45057689乍看起来,move语义使得你可以用廉价的move赋值替代昂贵的copy赋值,完美转发使得你可以将传来的任意参数转发给 其他函数,而右值引用使得move语义和完美转发成为可能。然而,慢慢地你发现这不那么简单,你发现std::mov转载 2017-09-16 13:09:50 · 554 阅读 · 0 评论 -
C++ explicit关键字详解
首先, C++中的explicit关键字只能用于修饰只有一个参数的类构造函数, 它的作用是表明该构造函数是显示的, 而非隐式的, 跟它相对应的另一个关键字是implicit, 意思是隐藏的,类构造函数默认情况下即声明为implicit(隐式).那么显示声明的构造函数和隐式声明的有什么区别呢? 我们来看下面的例子:class CxString // 没有使用explicit转载 2017-09-16 12:47:06 · 346 阅读 · 0 评论 -
c++中模板使用时候typename和class的区别
在c++Template中很多地方都用到了typename与class这两个关键字,而且好像可以替换,是不是这两个关键字完全一样呢?相信学习C++的人对class这个关键字都非常明白,class用于定义类,在模板引入c++后,最初定义模板的方法为: template...... 在这里class关键字表明T是一个类型,后来为了避免class在这两个地方的使用可能给人带来混淆,所以引入了typ转载 2017-09-16 12:42:53 · 586 阅读 · 0 评论 -
C++ 浮点数(double、float)如何定义NaN、正无穷、负无穷,以及如何判断是否是NaN
浮点数的标准可以看百度百科:http://baike.baidu.com/view/1698149.htm NaN :阶码的每个二进制位全为1 并且 尾数不为0;无穷:阶码的每个二进制位全为1 并且 尾数为0;符号位为0,是正无穷,符号位为1是负无穷。 所以NaN、正无穷、负无穷可以如此定义,可以如此判断是否NaN://floatint转载 2017-03-16 21:47:46 · 26457 阅读 · 0 评论 -
Valgrind使用说明
Valgrind是运行在Linux上一套基于仿真技术的程序调试和分析工具,是公认的最接近Purify的产品,它包含一个内核——一个软件合成的CPU,和一系列的小工具,每个工具都可以完成一项任务——调试,分析,或测试等。Valgrind可以检测内存泄漏和内存越界,还可以分析cache的使用等,灵活轻巧而又强大。 一 Valgrind概观Valgrind的最新版是3.2.3,该版本包含下列工具:...转载 2018-05-09 22:09:29 · 1005 阅读 · 0 评论