摘要: 8. C++11新特性又哪些 自动类型推导auto,智能指指针(share_ptr,unique_ptr等),for循环简化,线程相关的(std::thread/std::mutex),空指针nullptr,lambda表达式,等等 9. share_ptr是线程安全的吗 share_ptr里包含引 阅读全文
posted @ 2024-09-17 19:23 robot2017 阅读(60) 评论(0) 推荐(0) 编辑
摘要: std::condition_variable 条件变量std::condition_variable有wait和notify接口用于线程间的同步。如下图所示,Thread 2阻塞在wait接口,Thread 1通过notify接口通知Thread 2继续执行。 具体参见示例代码: #include 阅读全文
posted @ 2024-09-17 10:23 robot2017 阅读(292) 评论(0) 推荐(2) 编辑
摘要: 1. new和malloc什么区别? new和malloc都用于在堆上分配内存,new是c++中的关键字,分配内存后还会调用构造函数 2. std中unorded_map,map,multimap有什么区别? unorderd_map中元素不按键值排序,底层数据结构是哈希表,相对map查询速度快,内 阅读全文
posted @ 2024-09-12 17:48 robot2017 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 要求 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 如下图所示反转所有左右节点. 解题思路 与94题类似,采用递归调用遍历子节点。在基本结构中,先调换左右节点,再对左右节点内部递归调用本身。 实现代码 TreeNode* invertTree(TreeNode* root) 阅读全文
posted @ 2024-09-05 10:41 robot2017 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 要求 给定一个二叉树 root ,返回其最大深度。 二叉树的 最大深度 是指从根节点到最远叶子节点的最长路径上的节点数。 如下图所示的二叉树最大深度为5. 解题思路 与94题类似,采用递归调用遍历子节点。在基本结构中,节点的最大深度等于根深度(1)加上左右较大深度,左右较大的深度可以一直递归至最小根 阅读全文
posted @ 2024-09-04 22:25 robot2017 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 基本概念 二叉树 二叉树的结构如上图所示,由一系列左-中-右节点组成的树状数据结构,其基本结构如下所示,由一个中间节点向左右分叉成两个节点,故称二叉树。 中序遍历 看二叉树基本的结构左-中-右三个节点,中间为Root,左边为Left,右边为Right。按顺序排列的话有C(3,2)=6种,其中左右,右 阅读全文
posted @ 2024-09-04 22:01 robot2017 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 问题 #include<iostream> #include<thread> int main() { int sum = 0; auto f = [&sum]() { for (int i = 0; i < 10000; i++) sum += 1; }; std::thread t1(f); s 阅读全文
posted @ 2024-03-31 14:00 robot2017 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 背景及问题 如下程序所示: #include<iostream> class MyString { public: MyString() = default; MyString(const char* data) { printf("%s", "MyString Constructed!!\n"); 阅读全文
posted @ 2023-12-19 12:03 robot2017 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 背景及问题: 在与硬件打交道时,经常需要知道当前设备连接的硬件信息,以便连接正确的硬件,比如串口通讯查询连接的硬件及端口,一般手工的方式就是去设备管理器查看相应的信息,应用程序如何读取这一部分信息呢,Windows下的SetupAPI系列就可以解决这个问题 示例程序 #include<Windows 阅读全文
posted @ 2023-12-12 23:14 robot2017 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 背景及问题: 目前很多局域网设备通过mNDS协议实现互联,IP地址为自动IP段-169.254.x.x,有时候设备厂家提供的API需要通过知晓局域网中的IP地址/设备名,才能连接该设备。这样要求每个软件必须配置设备名或者启动时遍历所有IP(6w+),不是很方便,这时候可以通过mDNS查询,自动拿到设 阅读全文
posted @ 2023-11-22 21:41 robot2017 阅读(369) 评论(0) 推荐(0) 编辑