03 2021 档案

摘要:/* 优化string 复制的时候 仅复制引用,只有在修改内容时,才复制内容 即实现写时拷贝 */ class COWMyString { public: //默认参数 COWMyString(const char *str = "") :m_str(strcpy(new char[strlen(s 阅读全文
posted @ 2021-03-17 17:01 Truman001 阅读(202) 评论(0) 推荐(0) 编辑
摘要:class A { public: //静态函数,返回引用 static A &GetInstance() {//静态局部变量 static A s_instance; return s_instance; } private: //默认构造函数 A() = default; /* 拷贝构造函数 用 阅读全文
posted @ 2021-03-17 16:13 Truman001 阅读(60) 评论(0) 推荐(0) 编辑
摘要:/* 实现一个string满足基本用法 */ class MyString { public: //默认参数 MyString(const char *str=""):m_str(strcpy(new char[strlen(str)+1], str)) { } ~MyString(void) { 阅读全文
posted @ 2021-03-17 16:12 Truman001 阅读(96) 评论(0) 推荐(0) 编辑
摘要:/* 实现一个线程安全的队列 */ template <class T> class SafeQueue { public: SafeQueue(void):q(),m(),c() {} ~SafeQueue(void) {} // Add an element to the queue. void 阅读全文
posted @ 2021-03-17 16:06 Truman001 阅读(651) 评论(0) 推荐(0) 编辑
摘要:/* 智能指针的简单实现 */ template<typename T> class SamrtPtr { public: //构造函数 SamrtPtr(T* ptr = nullptr) :m_ptr(ptr) { if (m_ptr) { m_count = new size_t(1); } 阅读全文
posted @ 2021-03-17 16:04 Truman001 阅读(91) 评论(0) 推荐(0) 编辑
摘要:哈希表 相关概念 避免碰撞 — 构造哈希函数、再散列函数法、哈希表加链表 虽然很好的处理了碰撞的问题,但是当单链表很长时,遍历链表的速度会很慢。 当链表太长时(经验法则:当元素个数比 bucket 数还要多时),想办法将其打散 — 将 bucket 扩充大约两倍。选择53的倍数附近的素数 53 → 阅读全文
posted @ 2021-03-14 16:29 Truman001 阅读(321) 评论(0) 推荐(0) 编辑
摘要:红黑树 相关概念 1 rb_tree 是一种高度平衡的搜索二叉树,其元素排列的规则有利于 search 和 insert,并同时保持适度的平衡。 2 rb_tree 提供遍历操作以及 iterator。元素放入后有一定的排列规则,按正常规则(++ iter)迭代器遍历时为输出为排序状态(sorted 阅读全文
posted @ 2021-03-14 16:11 Truman001 阅读(278) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示