Senior Dogsbody Engineer  

2023年6月9日

摘要: 1. 去常转换 const_cast 把常量指针或引用转换为非常量指针或引用,或者反之,并仍然指向原来的对象。强制转换类型必须是指针或引用。 const int a = 10; const int &b = 20; int& ra = const_cast<int&> (a); // 把常量引用转换 阅读全文
posted @ 2023-06-09 10:42 高级打杂工程师 阅读(40) 评论(0) 推荐(0) 编辑

2023年5月24日

摘要: int* p = new int[10]; // p指向一个int数组,大小为10 int** pp = new int*[10]; // pp指向一个int指针数组,大小为10, 等价于: int** pp = new (int*)[10]; int** ppClass = new MyClass 阅读全文
posted @ 2023-05-24 17:06 高级打杂工程师 阅读(29) 评论(0) 推荐(0) 编辑

2023年3月1日

摘要: typedef struct { int age; bool gender; string name; } member ; bool getMember(void **pVoid) { member NewMember; NewMember.age = 18; NewMember.gender = 阅读全文
posted @ 2023-03-01 20:23 高级打杂工程师 阅读(38) 评论(0) 推荐(0) 编辑

2023年2月15日

摘要: 在h文件里变量声明: template <class T, enum EDeviceType g_eDeviceType> class ILocalDeviceProtocolImpl : public T { public: ILocalDeviceProtocolImpl(){}; protec 阅读全文
posted @ 2023-02-15 14:39 高级打杂工程师 阅读(99) 评论(0) 推荐(0) 编辑

2022年12月12日

摘要: 这里借用那个著名故事《国王赏麦》来直观的解释O(log(N))。 传说西塔发明了国际象棋而使国王十分高兴,他决定要重赏西塔。西塔说:“我不要你的重赏,陛下,只要你在我的棋盘上赏一些麦子就行了。在棋盘的第1个格子里放1粒,在第2个格子里放2粒,在第3个格子里放4粒,在第4个格子里放8粒,依此类推,以 阅读全文
posted @ 2022-12-12 10:13 高级打杂工程师 阅读(100) 评论(0) 推荐(0) 编辑

2022年12月8日

摘要: 所有的数据都是成对出现的,每一对中的第一个值称之为关键字(key),每个关键字只能在map中出现一次;第二个称之为该关键字的对应值(value)。 map是一种有序的容器,底层是用红黑树实现的,红黑树是一种自平衡的二叉树,可以保障最坏情况的运行时间,它可以做到O(logn)时间完成查找、插入、删除元 阅读全文
posted @ 2022-12-08 13:50 高级打杂工程师 阅读(34) 评论(0) 推荐(0) 编辑

2022年11月17日

摘要: 1、冒泡法 依次比较相邻的两个数,将小数换到前面,大数换在后面。 第一趟,过程如下概述: 首先,比较第1个和第2个数,将小数换前,大数换后。 然后,比较第2个数和第3个数,将小数换前,大数换后。 如此继续,比较第n个数和第(n + 1)个数,将小数换前,大数换后。 直至比较最后两个数,将小数换前,大 阅读全文
posted @ 2022-11-17 11:27 高级打杂工程师 阅读(22) 评论(0) 推荐(0) 编辑

2022年11月15日

摘要: 内存分配方式有三种: (1)从静态存储区域分配。例如全局变量,static变量,常量字符串。(2)在栈上创建。函数内局部变量的存储单元都可以在栈上创建(3)从堆上分配,亦称动态内存分配。用malloc或new申请的内存。 注意不要返回指向“栈内存”的“指针”或者“引用”, 数组要么在静态存储区被创建 阅读全文
posted @ 2022-11-15 09:53 高级打杂工程师 阅读(73) 评论(0) 推荐(0) 编辑

2022年11月8日

摘要: 写一个函数找出一个整数数组中,第二大的数 int find_sec_max(int *data, int count) { int max = data[0]; int sec_max = data[0]; for (int i = 1; i < count; i++) { if (data[i] 阅读全文
posted @ 2022-11-08 13:11 高级打杂工程师 阅读(35) 评论(0) 推荐(0) 编辑

2022年11月3日

摘要: 多态分为静态多态和动态多态 1. 静态多态 :静态多态是编译器在编译期间完成的,编译器会根据实参类型来选择调用合适的函数,如果有合适的函数就调用,没有的话就会发出警告或者报错。静态多态有函数重载、运算符重载、泛型编程等。 2. 动态多态: 动态多态是在程序运行时根据基类的引用(指针)指向的对象来确定 阅读全文
posted @ 2022-11-03 10:17 高级打杂工程师 阅读(29) 评论(0) 推荐(0) 编辑