菜鸟笔记
提升您的技术认知

C++ 笔记 第27页

求二叉树的结点个数

菜鸟阅读 : 3754赞(1)

求二叉树的结点个数 如下利用递归来实现 方法一 根据递归函数实现,如果树不为空,根节点为1 1 统计根节点左子树 2 统计根节点右子树 3 将左子树节点个数+右子树节点个数+根节点个数1=即为整颗树的节点个数 4 统计左右子树的节点个数也是...

STL中list的使用

菜鸟阅读 : 3052赞(1)

list的底层结构 list底层是一个带头节点的双向循环链表,任意位置插入和删除时间复杂度0(1) list迭代器 由于list底层是带头节点的双向循环链表,因此list的迭代器需要list的实现者自己提供 迭代器怎么实现呢? 迭代器的本质...

C++面试知识点

菜鸟阅读 : 2377赞(1)

strcpy函数实现 char* strcpy(char* dest, const char* src){ assert((dest != NULL) && (src != NULL)); //检查指针的有效性 char* ...

内联函数

菜鸟阅读 : 2748赞(1)

定义 它们看起来像函数,运作起来像函数,比宏(macro)要好得多,使用时还不需要承担函数调用的负担。当内联一个函数时,编译器可以对函数体执行特定环境下的优化工作,这样的优化对“正常”的函数调用时不可能的。 规则 inline关键字必须和函...

C++中的单例模式

菜鸟阅读 : 4839赞(1)

单例模式也称为单件模式、单子模式,可能是使用最广泛的设计模式。其意图是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。有很多地方需要这样的功能模块,如系统的日志输出,GUI应用必须是单鼠标,MODEM的联接需...

struct/class等内存字节对齐问题详解

菜鸟阅读 : 2281赞(1)

问题引入 定义一个结构体的一般形式为: struct 结构体名{ // 类型说明符 成员名; }; 例如下面的结构体: struct Stu { int id; char sex; float hight; }; 那么一个这样的结构体变量占...

哈希表的设计与实现

菜鸟阅读 : 2481赞(1)

简介 哈希表,也称散列表,是实现字典操作的一种有效的数据结构。尽管在最坏的情况下,散列表查找一个元素的时间复杂度与链表中查找的时间相同,达到了O(n),然而实际应用中,散列表查找的性能是极好的,在一些合理的假设下,在散列表中可以查找一个元素...

C++11/14线程–线程的创建与分离

菜鸟阅读 : 2435赞(2)

线程的创建 线程的分离 线程的创建 让我们看看示例代码(t1.cpp). #include <iostream> #include <thread> void thread_function() { std::cou...

C++条件变量–std::condition_variable

菜鸟阅读 : 4192赞(1)

条件变量允许我们通过通知进而实现线程同步。 因此,您可以实现发送方/接收方或生产者/消费者之类的工作流。 在这样的工作流程中,接收者正在等待发送者的通知。如果接收者收到通知,它将继续工作。 std::condition_variable 条...

在switch语句中使用字符串以及实现原理

菜鸟阅读 : 3312赞(1)

一次机缘巧合,在idea中调试代码的时候,跳到了.class文件中,刚好调试的代码是switch,于是就有了下面的内容: 对于Java语言来说,在Java 7之前, switch语句中的条件表达式的类型只能是与整数类型兼容的类型,包括基本类...