![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
我不是胖虎
这个作者很懒,什么都没留下…
展开
-
STL中map、hash_map、unordered_map
一:map map是基于红黑树实现的,插入,查找和删除的时间复杂度均是O(logn),对其进行操作的时间复杂度是稳定的 插入:O(logN) 查看:O(logN) 删除:O(logN) 二:hash_map hash_map底层是用hash表实现的,利用空间换取时间。插入、查找和删除的时间复杂度均是插入:O(1),最坏情况O(N)。 查看:O(1),最坏情况O(N)。 删除:O(1),最坏情况O(...原创 2020-02-22 15:21:01 · 163 阅读 · 0 评论 -
C++实现反射机制优化简单工厂
在简单工厂模式中,在工厂类中,需要加入switch或者if判断,增加了代码的耦合性,不利于扩展。 引入反射机制则可以去除判断,而是根据传入的字符串直接生产对应的实例 未加入反射机制的简单工厂 class Fruit { public: virtual void eat() = 0; }; class apple:public Fruit { public: void eat() { co...原创 2019-12-29 09:52:10 · 359 阅读 · 0 评论 -
C++实现反射机制
C++是不支持通过类名称字符串”ClassXX”来生成对象的,也就是说我们可以使用 ClassXX* object =new ClassXX; 来生成对象, 但是不能通过ClassXX* object=new “ClassXX”; 来生成对象。 反射是一种通过程序运行过程中用类名创建对象,并获取类的成员和方法。 Factory.h #ifndef _FACTORY_H #define _FACTO...原创 2019-12-28 21:46:16 · 207 阅读 · 0 评论 -
字符串和数字的转换
整型和字符串相互转换int转char*char*转intint转stringstring转intstring转char*char*转string int转char* 使用_itoa(int,char*,int)//要转的数字,字符串,进制 int main() { int num1 = 123; int num2 = 456; char str[10]; char *temp = _i...原创 2019-12-09 21:42:33 · 83 阅读 · 0 评论 -
企业链表(Linux内核链表改进)
#include<stdio.h> #include<stdlib.h> #include<string.h> //节点 typedef struct LinkNode { struct LinkNode* next; }LinkNode; //链表 typedef struct LINKLIST { LinkNode pHead; int size; ...原创 2019-08-02 17:47:10 · 140 阅读 · 0 评论