信号量+令牌桶算法实现的简单限流组件
基于条件变量的信号量简单实现class Semaphore { public: Semaphore(int max_count) : max_count_(max_count), current_count_(max_count) {} Semaphore() : max_count_(1), current_count_(1) ...
Protobuf简单使用
C++ 生成代码指南 | 协议缓冲区文档 - ProtoBuf 中文 namespace 如果 .proto 文件包含 package 声明,则该文件的所有内容都将放置在相应的 C++ 命名空间中。例如,给定 package 声明 package fo...
leetcode刷题记录——2024年2月
2641、二叉树的堂兄弟节点 Ⅱ——哈希表、层序遍历使用队列进行层序遍历,sameparent记录每个节点的兄弟节点的值,同时sum用于存储当前遍历层的下一层节点总和。当遍历到下一层时,每个节点的va...
浅谈RVO与NRVO
RVO 和 NRVORVO(Return Value Optimization,返回值优化)和 NRVO(Named Return Value Optimization,命名返回值优化)是编译器进行的优化技术,旨在减少函数返回值的拷贝或移动操作。它们是 ...
leetcode刷题记录——2024年1月
2487、从链表中移除节点——递归、单调栈整个过程可以理解为维护一个递减的栈,栈中的节点是按照从大到小的顺序排列的。每遇到一个新节点时,如果栈顶节点的值大于当前节点的值,则将栈顶节点替...
LeetCode 热题 100
49、字母异位词分组——哈希表、排序将异位词进行排序后可以得到相同字符串。遍历字符串数组,对每个字符串排序之后存入哈希表,最后将哈希表转化成数组即可。class Solution { public: vector&...
SeedLab——Spectre Attack Lab
IntroductionSpectre AttackSpectre攻击是一种基于侧信道漏洞的攻击方法,它于2018年首次公开披露。该攻击利用了现代处理器中存在的一种设计缺陷,使得恶意程序可以访问其本不应该具备权限的内...
leetcode刷题记录——动态规划
509、斐波那契数 和爬楼梯一样,最基础的动态规划,没什么好说的。 class Solution { public: int fib(int n) { if (n == 0) { return 0; } vector<int> dp(3, 0); dp[1] = 1; dp[2] = 1;...
实现 Linux 系统防火墙(包过滤、状态防火墙、NAT)
GitHub仓库地址https://github.com/cSuk1/myFireWall前言最大的难点在于内核驱动的编写,在此之前我也没有做过Linux内核模块的代码编写,所以刚开始做起来非常吃力,这要求代码编写者有非常好的...
SeedLab——Cross-Site Scripting (XSS) Attack Lab
Lab Environment SetupDNS Setup在/etc/hosts文件中,添加域名和IP地址的映射# For XSS Lab 10.9.0.5 www.seed-server.com 10.9.0.5 www.example32a.com 10.9.0.5 www.example32b.com 10.9.0.5 ...
SeedLab——Shellcode Development Lab
Task-1 Writing ShellcodeA: The Entire Process下面这段代码使用汇编语言编写实现一个Linux系统调用程序,用于执行/bin/sh命令。section .text ; 定义代码段开始 global _start ; 声明_start标...
leetcode刷题记录——2023年12月
2661、找出叠涂元素——哈希表超时方法首先,通过使用unordered_map来构建矩阵mat中元素与其索引的映射关系。遍历矩阵中的每个元素,将元素作为键,将其索引{i, j, 0}作为值,存储在matrix中。...
leetcode刷题记录——2023年10月
2、两数相加注意的点:同位相加大于10的情况注意进位可能是极大的数字,转成整数直接相加不可行class Solution { public: ListNode *addTwoNumbers(ListNode *l1, ListNode *l2) { ListNode *re...