
详细解说 STL 排序(Sort)
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去...
0 前言: STL,为什么你必须掌握 对于程序员来说,数据结构是必修的一门课。从查找到排序,从链表到二叉树,几乎所有的算法和原理都需要理解,理解不了也要死记硬背下来。幸运的是这些理论都已经比较成熟,算法也基本固定下来,不需要你再去花费心思去...
new/delete与operator new/operator delete new operator/delete operator就是new和delete操作符,而operator new/operator delete是函数。 ne...
Linux或者Unix操作系统中,在系统引导的时候会开启很多服务,这些服务就叫做守护进程。守护进程是脱离于终端并且在后台运行的进程。守护进程脱离终端是为了避免进程在执行过程中产生的信息在任何终端上显示,另外进程也不会被任何终端所产生的信息所...
语法:类型 &函数名(形参列表){ 函数体 } 特别注意: 1.引用作为函数的返回值时,必须在定义函数时在函数名前将& 2.用引用作函数的返回值的最大的好处是在内存中不产生返回值的副本 //代码来源:RUNOOB #incl...
“请用C++写一个单例,考虑一下多线程环境。” 这是一个常见的面试题,别人问过我,我也问过别人。 这个问题可以很简单,也可以很复杂。 简单有效的单例 class Singleton { public: static Singleton* G...
由于种种原因,我还是不太推荐在C++使用异常机制。所以也不捕获异常,如果有问题直接让它挂掉。 最近遇到一个问题,我的框架“帮”我捕获了vector抛出的越界异常,没有了core文件,很难定位问题具体出在哪一行。 backtrace 是可以捕...
数据类型 protobuf thrift protobuf thrift protobuf thrift protobuf thrift double double float byte i16 i...
//User.proto package ProtoMessage; message User { required uint32 ID = 1; required string name = 2; } message UserList {...
一、单线程死锁 void b(); void a() { mutex m; m.lock(); b(); cout
前段项目中发现一个问题,程序总是在某个dynamic_cast进行动态转换时出异常,查了半天才发现问题原来是出在memset的使用上,虽然问题本身显而易见,但当处于几十万行代码量级中时,就变得不太那么容易定位了。 本文归纳了下使用memse...