摘要: #include <iostream> #include <cstring> class MyString { public: MyString(const char * _pname=nullptr) { if (_pname == nullptr) { pname = new char[1]; 阅读全文
posted @ 2023-01-05 14:48 Hello_Bugs 阅读(2) 评论(0) 推荐(0) 编辑
摘要: #include <> 和 #include "" 的区别 1.#include <> 引用的头文件应当是编译器中的类库目录下的头文件。 2.#include "" 引用的头文件是程序目录下的头文件。 3.如果#include "" 中引用的文件在程序目录下未能找到,将从编译器中的类库目录下继续找。 阅读全文
posted @ 2022-12-17 17:55 Hello_Bugs 阅读(4) 评论(0) 推荐(0) 编辑
摘要: unique_ptr的成员函数在上一篇博客中几乎全部涵盖,其实还有一个很有踢掉,即std::unique_ptr::get_deleter字面已经很明显了,就获得deleter 智能指针采通过引用计数我们能解决多次释放同一块内存空间的问题,并且和之间直接移交管理权的方式比较这种方式更加灵活安全。 但 阅读全文
posted @ 2022-12-16 22:18 Hello_Bugs 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 关联容器 无序关联容器->链式哈希表 增删查 O(1) set:集合key map:映射表[key,value] unordered_set 单重集合 不允许重复 unordered_multiset 多重集合 unordered_map 单重映射表 unordered_multimap 多重映射表 阅读全文
posted @ 2022-12-16 08:15 Hello_Bugs 阅读(16) 评论(0) 推荐(0) 编辑
摘要: 函数对象 =》C语言中的函数指针 函数对象 尽管函数指针被广泛用于实现函数回调,但C++还提供了一个重要的实现回调函数的方法,那就是函数对象。函数对象(也称“函数符”)是重载了“()”操作符的普通类对象。因此从语法上讲,函数对象与普通的函数行为类似。 用函数对象代替函数指针有几个优点: 首先,因为对 阅读全文
posted @ 2022-12-15 22:20 Hello_Bugs 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 标准容器->容器适配器 什么叫适配器? 1:适配器底层没有自己的数据结构,它是另外一个容器的封装,它的方法, 全部由底层依赖的容器进行实现的.像标准库中的stack 如下图 2:没有实现自己的迭代器 容器适配器 stack,queue,priotity_queue 没有迭代器 stacks1; 栈, 阅读全文
posted @ 2022-12-15 19:08 Hello_Bugs 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 泛型算法 头文件 包含了C++ STL里面的泛型算法 泛型算法=》template + 迭代器 + 函数对象 sort, find , find_if , binary_search , for_each 泛型算法特点 1:泛型算法的参数接收的都是迭代器(迭代器保证了接口统一) 2:泛型算法的参数还 阅读全文
posted @ 2022-12-15 17:20 Hello_Bugs 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 无序关联容器 #include <unordered_set> #include <unordered_map> 有序关联容器 => 底层是红黑树结构 #include<set> #include<map> set<int> set1 ;//不允许重复 for(int i=0;i<100;i++){ 阅读全文
posted @ 2022-12-15 16:31 Hello_Bugs 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 容器迭代器 Vector vec; for(int i=0;i<100;i++){ vec.push_back(i); } const_iterator 常量迭代器 (基类) iterator 普通迭代器 (子类) iterator 是继承自const_iterator的 class const_i 阅读全文
posted @ 2022-12-15 09:58 Hello_Bugs 阅读(2) 评论(0) 推荐(0) 编辑
摘要: vector和deque之间的区别? vector:底层动态数组,内存连续,二倍方式扩容 vector vec;默认是没有开辟空间的, 0->1->2->4->8->16 可以用reserve(20) 只开辟空间,没有放置元素 deque:动态开辟的二维数组空间,第二维是固定长度的空间,扩容的时候, 阅读全文
posted @ 2022-12-15 09:44 Hello_Bugs 阅读(30) 评论(0) 推荐(0) 编辑