C++
蛮夷小王爷
普通硕士一枚
展开
-
STL源码剖析-RBTree
关联式容器根据“数据在容器中的排列”特性,容器可分为序列式和关联式容器两种。标准的STL关联式容器可分为set(集合)和map(映射表)。这些容器的底层机制均以RB-tree完成,RB-tree也是一个独立容器,但并不对外开放。此外,SGI STL还提供了一个不在标准规格之列的关联式容器:hash table(散列表)以及hash table为底层机制完成的hash_set(散列集合)、has...原创 2020-05-05 16:20:24 · 284 阅读 · 0 评论 -
C++实现红黑树
//// Created by Administrator on 2020/4/29.//#ifndef RBTREE_RBTREE_H#define RBTREE_RBTREE_H#include <iostream>#include <algorithm>#include <vector>#include <string>...原创 2020-05-04 14:14:37 · 393 阅读 · 0 评论 -
STL源码剖析-priority_queue
priority_queue概述priority_queue是一个拥有权值观念的queue,它允许加入新元素、移除旧元素、审视元素值等功能。由于这是一个queue,所以只允许在低端加入元素,并从顶端取出元素,除此之外别无其他存取元素的途径。priority_queue内的元素并非按照被推入的次序排列,而是自动依照元素的权值排列,权值最高的排在最前面。缺省情况下,priorit-queue是利...原创 2020-04-07 17:30:15 · 120 阅读 · 0 评论 -
STL源码剖析-heap
heap概述heap并不属于STL容器组件,它是个幕后英雄,扮演priority_queue的助手。priority_queue允许用户以任何次序将任何元素推入容器内,但取出时一定是从优先权最高(也就是数值最高)的元素开始取,binary max heap正是具有这样的特性,适合作为priority_queue的底层机制。如果让list作为priority_queue的底层机制,元素插入操作可...原创 2020-04-06 17:26:15 · 197 阅读 · 0 评论 -
STL源码剖析-Queue
queue概述queue是一种先进先出的数据结构,它有两个出口,queue允许新增元素、移除元素、从最低端加入元素、取得最顶端的元素。但除了最低端可以加入,最顶端可以取出,没有任何其他方法可以存取queue的其他元素,queue不允许有遍历行为。将元素推入queue的操作称为push,将元素推出queue的操作称为pop。queue定义完整列表与stack类似,同样可以采用deque作为...原创 2020-04-03 16:45:52 · 268 阅读 · 0 评论 -
STL源码剖析-stack
stack概述stack是一种先进后出的数据结构。只有一个出口,stack允许新增元素、移除元素、取得最顶端元素。但除了最顶端外,没有任何其他方法可以存取stack的其他元素。也就是stack不允许遍历行为。将元素推入stack的操作称为push,将元素推出stack的操作称为pop。stack定义完整列表stack其实是将某种容器作为底部结构,将其接口改变,使其符合“先进后出”的特性,...原创 2020-04-03 16:41:18 · 102 阅读 · 0 评论 -
运算符重载使用友元的好处
参考:https://blog.csdn.net/qq_36864672/article/details/76422722一般情况下:将双目运算符重载为友元函数,这样就可以使用交换律,比较方便单目运算符一般重载为成员函数,因为直接对类对象本身进行操作...转载 2020-04-03 16:05:57 · 437 阅读 · 0 评论 -
C++引用作为函数的返回值的注意事项及好处
参考:https://blog.csdn.net/weixin_40539125/article/details/81410008转载 2020-04-03 14:35:14 · 438 阅读 · 0 评论 -
STL源码剖析--deque
deque概述vector是一种单向开口的连续线性空间,而deque是一种双向开口的连续线性空间,所谓双向开口,意思是可以在头尾两端分别做元素的插入和删除操作,如图为deque的示意图:deque和vector 的最大差异:deque允许常数时间对头端进行元素的插入和删除操作deque没有所谓的容量观念,因为它是动态地以分段连续空间组合而成的,随时可以增加一段新的空间并链接起来,换句话...原创 2020-04-02 21:20:57 · 230 阅读 · 0 评论 -
STL源码剖析-List
List概述List的好处是每次插入或删除一个元素,就配置或释放一个元素空间,因此,List对于空间的运用有绝对的精准,一点也不浪费。并且,对于任何位置的元素插入或移除,llist永远是常数时间。List的节点list本身和list的节点是不同的结构,list本身应该是整一张表,而一张表有很多个节点,以下是list的节点的结构:template<typename T> ...原创 2020-03-29 21:46:31 · 241 阅读 · 0 评论 -
写C++遇到的问题
对于私有变量,我们所说的私有是对类外直接访问不可见,因此,下面的情况是可以直接调用私有变量的,如下:class A{private: int a,b,c;public: A(int a,int b,int c):a(a),b(b),c(c){}; A(const A& temp){ a = temp.a; b = temp.b...原创 2020-03-27 15:11:46 · 830 阅读 · 0 评论 -
STL源码剖析之迭代器
iterators and traitsSTL的中心思想在于将数据容器和算法分开,而迭代器就是扮演二者之间的粘合剂。迭代器是一种类似指针的对象,而指针的各种行为中最常见的就是成员访问和内容提取,因此迭代器最重要的编程工作就是operator*和operator->进行重载.迭代器的类型我们在算法中使用迭代器的时候,很可能需要使用到其相应的类型,但是C++只支持sizeof(),而不支持...原创 2020-03-23 17:20:34 · 193 阅读 · 0 评论 -
C++const变量的规则
参考自:https://blog.csdn.net/kaida1234/article/details/80403534原创 2020-03-22 14:40:12 · 77 阅读 · 0 评论