C++
咖啡味儿的咖啡
这个作者很懒,什么都没留下…
展开
-
【gflags 】google gflags 使用方法
参考:https://blog.csdn.net/jcjc918/article/details/50876613原创 2019-11-12 09:51:35 · 283 阅读 · 0 评论 -
【C++】emplace_back() 与 push_back()的区别
vector是我们常用的容器,向其中增加元素的常用方法有:emplace_back和push_back两种。push_bach():首先需要调用构造函数构造一个临时对象,然后调用拷贝构造函数将这个临时对象放入容器中,然后释放临时变量。emplace_back():这个元素原地构造,不需要触发拷贝构造和转移构造。...转载 2019-07-23 21:56:23 · 5043 阅读 · 0 评论 -
【C++】unordered_map用法详解
定义:std::unordered_map<std::string, std::int> umap; 增:umap.insert(Map::value_type("test", 1));删://根据key删除,如果没找到n=0auto n = umap.erase("test")改:auto it = umap.find(key) if(it !...原创 2019-07-23 21:25:28 · 8714 阅读 · 0 评论 -
【C++】size_t的意义
学过计算机组成原理应该不会对此有疑问。int小于等于数据线宽度,size_t大于等于地址线宽度。size_t存在的最大原因可能是因为:地址线宽度历史中经常都是大于数据线宽度的。在数据只有8位的年代,地址率先进入10位,12位,在数据16位的年代,地址也已经进入了20位,24位。目前的int普遍是32位,而size_t在主流平台中都是64位。size_t为什么存在?因为无论int还是...转载 2019-06-03 17:30:12 · 2921 阅读 · 0 评论 -
【C++】shared_ptr
何时需要使用 shared_ptr ?(1) 程序不知道自己需要使用多少对象. 如使用窗口类, 使用 shared_ptr 为了让多个对象能共享相同的底层数据.std::vector<std::string> v1; // 一个空的 vector // 在某个新的作用域中拷贝数据到 v1 中 { ...转载 2019-02-20 21:08:38 · 129 阅读 · 0 评论 -
【C++】DISALLOW_COPY_AND_ASSIGN
有时候,进行类体设计时,会发现某个类的对象是独一无二的,没有完全相同的对象,也就是对该类对象做副本没有任何意义.因此,需要限制编译器自动生动的拷贝构造函数和赋值构造函数.一般参用下面的宏定义的方式进行限制,代码如下:// A macro to disallow the copy constructor and operator= functions // This should be ...转载 2019-02-20 20:59:17 · 1182 阅读 · 0 评论 -
【C++11】nullptr
//C语言中NULL定义#define NULL (void*)0 //c语言中NULL为void类型的指针,但允许将NULL定义为0//c++中NULL的定义#ifndef NULL#ifdef _cpluscplus //用于判定是c++类型还是c类型,详情看上一篇blog#define NULL 0 ...转载 2019-02-20 20:34:30 · 445 阅读 · 0 评论 -
【C++11】std::unique_ptr
参考:https://zh.cppreference.com/w/cpp/memory/unique_ptr std::unique_ptr 是通过指针占有并管理另一对象,并在 unique_ptr 离开作用域时释放该对象的智能指针。在下列两者之一发生时用关联的删除器释放对象:销毁了管理的 unique_ptr 对象 通过 operator= 或 reset() 赋值另一指...原创 2019-02-20 20:10:53 · 1267 阅读 · 0 评论 -
【C++】Class A::instance()->func()用法
今天看到这个代码有点懵,特此记录:instance()的定义应该也是A *instance()它返回一个classA的对象指针A *pp = Class A::instance();p->func() 暂时没有搜到其它资料,参考了百度知道的一个回答,待以后确认了更新。...原创 2019-02-21 15:13:22 · 6747 阅读 · 3 评论