摘要:
move : 移动语义,得到右值类型 forward:类型转发,能够识别左值和右值类型 只有两种形式的引用,左值引用和右值引用,万能引用不是一种引用类型,它存在于模板的引用折叠情况,但是能够接受左值和右值 区分左值和右值得一个简单方式就是能不能取地址 一个右值一旦有名字那么就变成了左值 #inclu 阅读全文
摘要:
一句话 const:首选作用于左边,如果左边没东西 ,就作用于右边 const int : const 作用于右边int int const : const 作用于左边int const int * const 左边第一个const ,作用于int , 右边const 作用于 * 指针 int * 阅读全文
摘要:
class Base { public: Base() = default; ~Base() = default; }; class Data :public Base { public: Data(){} ~Data() = default; }; std::unique_ptr<Base> ba 阅读全文
摘要:
#include <iostream> #include <cstring> class MyString { public: MyString(const char * _pname=nullptr) { if (_pname == nullptr) { pname = new char[1]; 阅读全文
摘要:
#include <> 和 #include "" 的区别 1.#include <> 引用的头文件应当是编译器中的类库目录下的头文件。 2.#include "" 引用的头文件是程序目录下的头文件。 3.如果#include "" 中引用的文件在程序目录下未能找到,将从编译器中的类库目录下继续找。 阅读全文
摘要:
unique_ptr的成员函数在上一篇博客中几乎全部涵盖,其实还有一个很有踢掉,即std::unique_ptr::get_deleter字面已经很明显了,就获得deleter 智能指针采通过引用计数我们能解决多次释放同一块内存空间的问题,并且和之间直接移交管理权的方式比较这种方式更加灵活安全。 但 阅读全文
摘要:
关联容器 无序关联容器->链式哈希表 增删查 O(1) set:集合key map:映射表[key,value] unordered_set 单重集合 不允许重复 unordered_multiset 多重集合 unordered_map 单重映射表 unordered_multimap 多重映射表 阅读全文
摘要:
函数对象 =》C语言中的函数指针 函数对象 尽管函数指针被广泛用于实现函数回调,但C++还提供了一个重要的实现回调函数的方法,那就是函数对象。函数对象(也称“函数符”)是重载了“()”操作符的普通类对象。因此从语法上讲,函数对象与普通的函数行为类似。 用函数对象代替函数指针有几个优点: 首先,因为对 阅读全文
摘要:
标准容器->容器适配器 什么叫适配器? 1:适配器底层没有自己的数据结构,它是另外一个容器的封装,它的方法, 全部由底层依赖的容器进行实现的.像标准库中的stack 如下图 2:没有实现自己的迭代器 容器适配器 stack,queue,priotity_queue 没有迭代器 stacks1; 栈, 阅读全文
摘要:
泛型算法 头文件 包含了C++ STL里面的泛型算法 泛型算法=》template + 迭代器 + 函数对象 sort, find , find_if , binary_search , for_each 泛型算法特点 1:泛型算法的参数接收的都是迭代器(迭代器保证了接口统一) 2:泛型算法的参数还 阅读全文