使用现代化C++实现线程安全的阻塞队列 完整代码 template<typename T> class BlockingQueue { const size_t capacity_; std::queue<T> queue_; std::mutex mutex_; std::condition_variab 笔记 #C++ 2024-09-25 41 0
20240414-C++-Concepts title: C++-Concepts date: 2024/04/14 tags: C++ categories: 笔记 C++ Concepts 概念(Concepts)是C++20中引入的一项特性,它们是对模板参数的约束,用于指定模板参数必须满足的接口(例如,一组必需的函数、类型、操作符等)和 笔记 #C++ 2024-04-14 18 0
20240413-Rust-09-结构体 title: Rust-09-结构体 date: 2024/04/13 tags: Rust categories: 笔记 结构体 定义并实例化结构体 结构体和我们在“元组类型”章节论过的元组类似。和元组一样,结构体的每一部分可以是不同 笔记 #Rust 2024-04-13 25 0
20240411-Rust-08-切片 title: Rust-08-切片 date: 2024/04/11 tags: Rust categories: 笔记 切片 Slice 类型 另一个没有所有权的数据类型是 slice。slice 允许你引用集合中一段连续的元素序列,而不用引用整个集合。 这里有一个编程小习题:编写一个函数,该函数 笔记 #Rust 2024-04-11 20 0
20240411-Rust-07-引用与借用 title: Rust-07-引用与借用 date: 2024/04/11 tags: Rust categories: 笔记 引用与借用 示例 4-5 中的元组代码有这样一个问题:我们必须将 String 返回给调用函数,以便在调用 calculate_length 后仍能使用 String,因为 笔记 #Rust 2024-04-11 18 0
20240411-Rust-06-所有权 所有权 所有权(系统)是 Rust 最为与众不同的特性,它让 Rust 无需垃圾回收器(garbage collector)即可保证内存安全。因此,理解 Rust 中所有权的运作方式非常重要。在本章中,我们将讨论所有权以及相关功能:借用、slice 以及 Rust 如何在内存中存放数据。 什么是所有 笔记 #Rust 2024-04-11 49 0
20240410-Rust-05-控制流 控制流 根据条件是否为真来决定是否执行某些代码,或根据条件是否为真来重复运行一段代码,是大部分编程语言的基本组成部分。Rust 代码中最常见的用来控制执行流的结构是 if 表达式和循环。 if 表达式 每个分支的代码块都必须以{}包裹,哪怕只有一行或一条表达式。 条件(谓词)表达式不必(不是不可以) 笔记 #Rust 2024-04-10 10 0
20240410-Rust-00-前言 你说得对,但是Rust 是由 Mozilla 自主研发的一款全新零开销抽象编程语言。语言采用一种被称作「RAII」 的资源管理机制,在这里,退出作用域的对象将触发「drop」方法,进而被销毀。你将扮演一位名为「Rustacean」的神秘角色,在编码过程中邂逅形状各异、形式独特的生命周期们,和它们一起 笔记 #Rust 2024-04-10 22 0
20240410-Rust-04-语句与表达式与函数 title: Rust-04-语句与表达式与函数 date: 2024/04/10 tags: Rust categories: 笔记 语句与表达式与函数 函数 main函数是程序入口,fn是用来声明新函数的关键字。 Rust代码中的函数和变量名都使用下划线命名法(snake case,直译为蛇形命 笔记 #Rust 2024-04-10 17 0