c 死锁情况
一、单线程死锁 void b(); void a() { mutex m; m.lock(); b(); cout
一、单线程死锁 void b(); void a() { mutex m; m.lock(); b(); cout
前段项目中发现一个问题,程序总是在某个dynamic_cast进行动态转换时出异常,查了半天才发现问题原来是出在memset的使用上,虽然问题本身显而易见,但当处于几十万行代码量级中时,就变得不太那么容易定位了。 本文归纳了下使用memse...
静态全局变量 特性 1. 存放空间:存放在全局数据区 从声明时开始初始化main函数结束销毁 2. 初始化:如果没有初始化则会被默认初始化为0 在首次用到时进行初始化 3. 作用域:作用域为整个源文件, 4. 区别:和全局变量的区别是 静态...
1.vector的内存增长 vector其中一个特点:内存空间只会增长,不会减小,援引c primer:为了支持快速的随机访问,vector容器的元素以连续方式存放,每一个元素都紧挨着前一个元素存储。设想一下,当vector添加一个元素...
本文将介绍 c 里面的 基本类型(引用 指针 结构体) 类型转换(static_cast、dynamic_cast、const_cast、reinterpret_cast), 类型处理(typedef auto...
0.概述 什么是deque呢? 一句话来概括 ,deque是一种 双向开口的"连续"线性空间存储数据的数据结构(注意这里的连续打了双引号,后面会解释) 咱们来对比一下deque和vector的一些区别 优点: 1.vector是单...
list是什么? list本质上就是双向链表 相对与上一篇所讲的vector,我们知道双向链表有它自己的优点,首先空间利用比较灵活,所以省空间. 而且插入删除元素都是常数时间 下面将参照list的源码,将其分为下面...
table of contents 0.引入 1.标准的空间配置器allocator 2.更为高效的空间配置器alloc 2.1----对象的构造与析构 2.1.1 对象的构造:::construct(); 2.1.2对象的析构:::des...
1.extern 1)extern修饰变量的声明 如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。 2)extern修饰函数的声明 如果文件a.c需要引用b.c中的函数,...
介绍traits的文章很多,但感觉大部分文章的说明都很晦涩难懂,把一个并不很复杂的c 模板的应用描述的过于复杂。忍不住想把自己的理解跟大家分享一下,或许我也只是掌握了一点traits的皮毛而已,但也希望这些皮毛能略微抓住你的眼球,带给你一...