C++11中的std::call_once
某些场景下,我们需要代码只被执行一次,比如单例类的初始化,考虑到多线程安全,需要进行加锁控制。C++11中提供的call_once可以很好的满足这种需求,使用又非常简单。 头文件#in...
某些场景下,我们需要代码只被执行一次,比如单例类的初始化,考虑到多线程安全,需要进行加锁控制。C++11中提供的call_once可以很好的满足这种需求,使用又非常简单。 头文件#in...
class CMyString { public: CMyString(char* pData = nullptr); CMyString(const CMyString &str); ~CMyString(void); CMySt...
std::shared_ptr的线程安全问题 通过这个程序我们来测试shared_ptr的线程安全问题,需要注意shared_ptr的线程安全分为两方面: // 1.演示引用计数线程安全问题,就把AddRefCount和SubRefCoun...
C++模板 什么是模板 书写的方式和作用 函数模板 案例一(模板与普通函数) 案例二(模板与模板) 函数模板缺省 函数模板传常量 模板的嵌套 什么是模板 模板编程也叫泛型编程,忽略数据类型的一种编程方式。 书写的方式和作用 模板的书写方式:...
unordered_map是关联容器,与map一样,所有的数据都是唯一键的键-值对应关系,也map不同的时,它的顺序是无序的。本篇学习它的创建,初始化,赋值,元素访问等操作。 示例代码如下: #include <iostream>...
#include <iostream> #include <functional> using namespace std; class A { public: A() :m_a(0){}...
在编程中,我们经常遇到这样的情况:我们可能返回/传递/使用某种类型的对象。也就是说,我们可以有某个类型的值,也可以没有任何值。因此,我们需要一种方法来模拟类似指针的语义,在指针中,我们可以使用nullptr来表示...
int一定是32bit吗?不一定 实际上,C/C++标准规定int的位宽不少于16bit。 作为一门古老的语言,C语言历经了各种各样的操作系统,小型的、大型的、内存小的、资源极其有限的,等等。对于同一个数据类型,在不同的操作系统上,其长度是...
c++中,<io.h>中的_access可以判断文件是否存在,<direct.h>中的_mkdir可以创建文件。 建单级目录: #include <io.h> #include <di...
一、前言 我们在写代码过程中可能经常会碰到这样的情况: 某个函数经过一系列计算后获取一个返回值,但是这个函数可能在执行过程中有异常分支,从这些异常分支中return出来的时候还没有得到这个想计算的值。 例如想计算得到一个无符号类...