
c++中的智能指针
简介 为了解决c++程序容易造成内存泄漏的问题,c++11提供了3种智能指针:std::unique_prt, std::shared_ptr, std::weak_ptr。智能指针的原理就是,将一个申请好的内存地址保存在智能指针结构体...
简介 为了解决c++程序容易造成内存泄漏的问题,c++11提供了3种智能指针:std::unique_prt, std::shared_ptr, std::weak_ptr。智能指针的原理就是,将一个申请好的内存地址保存在智能指针结构体...
问题: 源程序来源于GItHub:recipes/Factory_deadlock.cc at master · chenshuo/recipes (github.com) 加了编译选项REPRODUCE_BUG后会导致死锁,为什么会死锁呢...
当智能指针 shared_ptr 在类里使用时,他的释放是在析构函数中内容执行完之后。 当使用 shared_ptr 开启了一个线程,这个线程也会在析构函数中内容执行完之后被释放,也就是被delete掉,如果线程尚未 join 的...
某些场景下,我们需要代码只被执行一次,比如单例类的初始化,考虑到多线程安全,需要进行加锁控制。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来表示...