Qt信号与槽
Qt的信号与槽机制是如何实现的?
猜测1:回调函数
- 这里用C11出现的function来封装所有可调用的对象:函数、指针、lambda、bind创建的对象、重载了小括号的仿函数
- 通过unordered_multimap来记录某个字符串与一个可调用对象的映射(注意unordered_multimap未实现[]和at函数,不能通过这类方式获取value)
1 | class Connection { |
输出结果:
Qt的信号与槽机制是如何实现的?
1 | class Connection { |
输出结果:
创建一个表示入度的数组,初始将入度为0的节点加入队列,后续依次弹出队列,每次弹出node,减小node指向的节点的入度,入度为0的加入队列,直到队列为空,结果需要判定出队列的节点数和图的总节点数相同,不同则代表有循环
1 | class Solution { |
全局的dist记录着最短距离,但它并未记录是几跳获得的。例如,到达终点的前一跳,从X->dst,我的代码中只限制了到达X最多k+1跳,此时更新了dist[X],当更新到dst时,利用的dist[X]是经过k跳的X作为跳板,则结果是经过了k+2跳,超出了限制,因此结果必然是错误的。
1 | class Item { |
tree[node]赋值相关代码即可实现求最大值、最小值、区间和,肥肠方便1 | class A { |
输出结果:
1 | /* |
1 | enum NetworkState{ |

1 | // 目标接口(新接口) |
思路和Dijkstra基本一致,唯一不同就是dist记录的是与集合的距离而非与起点的距离
1 | // Leetcode 1584 连接所有点的最小费用 |
利用并查集的思想