资源简介:最近在研究Rust,目前大多数项目都可以使用Rust开发,但是涉及到和其他语言交互,比如用Rust开发一个SDK,一般还是需要导出C接口。那如何将Rust导出C接口?Rust的FFI就是专门做这件事的。一个正常的Rust public接口长这样:pub fn hello_world() -> i32 { 20}如果要把一个Rust函数导出为C接口,需要对它进行改造:#[no_m...
资源简介:20多年持续打磨,国际经典教材计算机网络:自顶向下方法 文末送书!Kurose和他的自顶向下方法就在最近,Kurose和Ross教授合著的《计算机网络:自顶向下方法》中文版也刚刚升级到了第8版,这是一本目前世界上使用最为广泛的网络教科书,书中倡导的方法就是目前最为流行的自頂向下方法。下面我们就深入地谈谈Kurose和他的自...
资源简介:作者 | daydreamer前篇《探秘C++内存管理(理论篇)》主要介绍了Linux C++程序内存管理的理论基础,本文作为系列文章《探秘C++内存管理》的第二篇,将会探讨经典内存管理器ptmalloc如何管理C++程序的内存。借助剖析ptmalloc解决问题的着重点和设计实现成本的权衡,更具体的呈现c++内存管理面临的问题和工程落地中的巧思。...
资源简介:今天的文章外部link比较多我特意整理了link的汇总需要的朋友可以在后台回复:“rust ”即可收到自动回复,更加方便观看------------------------------------------------------------------最近看到一篇Google的Blog:Google官宣要把Rust引进Chromium项目中。此举是为了加快开发速度(更少的代码编写,更少的设计文档、更...
资源简介:前面介绍了模板这种编译期动作,关于编译期动作,有必要介绍下constexpr。在这之前有必要简单提一下constexpr与const的关系,两者字面上都表达常量的意思。主要的区别是:const修饰的变量可以在运行时才初始化,而constexpr则一定会在编译期初始化。constexpr才是名符其实的常量,所有的constexpr都是const。而const表示的...
资源简介:众所周知,chatGPT可以不依赖背景立即有效地回答不精确的问题。它提供带有工作代码的答案。一位美国的Telegram算法交易员,以其所在的项目组的实际问题进行了测试,问题如下:“有没有办法自动序列化Protobuf消息?就像以下内容:C++结构体->序列化为Protobuf消息结构体->发送到网络”chatGPT回复如下:如上所示chatGPT解决...
资源简介:一、文件系统结构磁盘的逻辑单元为块,内存和磁盘之间的I/O传输以块为单位执行。磁盘的特点1可以原地重写,可以从磁盘上读一块儿,修改该块,并将它写回到原来的位置可以直接访问磁盘上的任意一块。因此,可以方便地按顺序或随机访问文件文件系统需要提供高效快捷磁盘访问,以便轻松存储、定位、提取数据。即存储文件、访问...
资源简介:本文详细介绍了 HTTPS 相较于 HTTP 更安全的原因,包括对称加密、非对称加密、完整性摘要、数字证书以及 SSL/TLS 握手等内容,图文并茂、理论与实战结合、建议收藏!1. 不安全的 HTTP近些年来,越来越多的网站使用 HTTPS 协议进行数据传输,原因在于 HTTPS 相较于 HTTP 能够提供更加安全的服务。很多浏览器对于使用 HTTP 协...
资源简介:大家应该都知道,Boost是个准标准库,一般Boost里比较先进的模块可能会进下一代的C++标准。因为我最近在开发Log相关的功能,所以业余时间也在看看市面上的Log模块是怎么设计的。关于Log,想必大多数C++开发都在使用glog或者spdlog,最近我发现Boost中也有个Log模块,于是看了看,发现功能好强大。Log模块整体设计如图:图片...
资源简介:作者 | 文库基础架构导读 introduction我们做软件开发时,或多或少的会记录日志。由于日志不是系统的核心功能,常常被忽视,定位问题的时候才想起它。本文由浅入深的探讨不起眼的日志是否重要,以及分布式架构下的日志运维工具应该具备哪些能力,希望感兴趣的读者能从本文获得一些启发,有所帮助。全文8832字,预计阅读时...
资源简介:入门和深入C/C++开发,通常都会研究一些优质的开源项目。我整理了一些开源项目,一些代码行数不多,但是功能还比较有趣,供大家参考:ctpl:https://github.com/vit-vit/ctpl - 简易的C ++线程池,代码行数约为500左右。cereal: https://github.com/USCiLab/cereal - 快速、小巧、方便的二进制 JSON 序列化库,代码行数约为...
资源简介:虽然现在有很多新语言和框架出现,但C++作为一门老牌编程语言,在很多领域仍然有它不可替代的优势。判断一门编程语言的趋势,它存在的时间是一个重要的参考因素。如果一个编程语言已经存在了很长时间,并且在很多领域仍然有着广泛的应用,那么它很可能会在未来继续保持其地位。C++作为一门诞生于上世纪80年代的编程语言,已...
资源简介:最近在知识星球上线了每日一题栏目,每天提出一个计算机问题,球友们讨论,并在第二天给出答案。小伙伴们的回复还算积极。这是其中一个问题,这里分享下:什么是RAII?RAII(Resource Acquisition Is Initialization)即资源获取即初始化,中文翻译意义不大… RAII在C++中非常重要。RAII的基本思想是使用类的构造函数来获取...
资源简介:熟悉我的朋友大概知道我最近翻译了一本介绍C++20特性的“小红书”《C++20高级编程》(第五版)C++标准委员会Marc Gregoire著这个版本满足了我对C++绝大多数的幻想。通过Modules淘汰了C++之前编写大程序的陈旧方式;使用Concepts帮助创建类型安全的模板和实现灵活的模板特化;使用Ranges彻底改变了处理数据的方式。这些新功...
资源简介:C++代码提供了足够的灵活性,因此对于大部分工程师来说都很难把握。本文介绍了写好C++代码需要遵循的10个最佳实践,并在最后提供了一个工具可以帮助我们分析C++代码的健壮度。原文:10 Best practices to design and implement a C++ class1. 尽可能尝试使用新的C++标准到2022年,C++已经走过了40多个年头。新的C++标准实际...
资源简介:一、概述在 C/C++ 中,内存管理是一个非常棘手的问题,我们在编写一个程序的时候几乎不可避免的要遇到内存的分配逻辑,这时候随之而来的有这样一些问题:是否有足够的内存可供分配?分配失败了怎么办? 如何管理自身的内存使用情况? 等等一系列问题。在一个高可用的软件中,如果我们仅仅单纯的向操作系统去申请内存,当出现内...
资源简介:前一段时间面了一些试,这里总结一下关于操作系统的面经,我简历上写了一个操作系统相关的项目,所以面试的问题可能与平常的八股面试题等等有一些差异,更加偏向具体细节和实现。这里就面试遇到的操作系统相关问题以及我自己的想法整理一下,可以参考参考,有什么问题也还请批评指正。这个是实际问到我的问题自己引申出来的...
资源简介:科普一个小知识点:电脑硬盘为什么从C盘开始。来源 | 程序IT圈前些天硬盘坏了,幸好不是系统盘,不然那些软件安装配置会把我折腾坏,或许这也是在暗示我该换电脑了。重要的数据部分没有遭到损坏,数据是无价的,还是要勤备份。于是换上了一张新的硬盘:当时脑袋里面就闪过一个问题,为啥 windows 系统不从 A 盘开始分区显示...
资源简介:今年的就业形势,实在是严峻。社招都这样,更别说应届生。除过常见的互联网,以及今年热门的新能源。其实如果大家不想卷,家庭条件也还可以,我建议可以考虑一波国企。虽然有一些垃圾国企,但仍然有非常多值得考虑的国企,毕竟优质的国企很稳定,不会像互联网一样担忧年纪大被裁员的情况发生,福利又好,同事间工作不会卷来...
资源简介:关于多线程,之前我就写过一篇文章:关于多线程,我给出13点建议其中有一条是:如果真的需要共享数据,尽量使用通信方式,而非共享内存方式。看到这条时,可能有读者不是特别理解,关于这一点,我想chromium的多线程任务理念可以给大家启发。原文链接是:https://chromium.googlesource.com/chromium/src/+/main/docs/threa...
资源简介:请你设计一个迭代器类,包括以下内容:一个构造函数,输入参数包括:一个 有序且字符唯一 的字符串 characters(该字符串只包含小写英文字母)和一个数字 combinationLength 。函数 next() ,按 字典序 返回长度为combinationLength 的下一个字母组合。函数 hasNext() ,只有存在长度为 combinationLength 的下一个字母组合...
资源简介:给定一个字符串数组 arr,字符串 s 是将 arr 某一子序列字符串连接所得的字符串,如果 s 中的每一个字符都只出现过一次,那么它就是一个可行解。请返回所有可行解 s 中最长长度。示例1输入:arr = ["un","iq","ue"]输出:4解释:所有可能的串联组合是 "","un","iq","ue","uniq" 和 "ique",最大长度为 4。示例2输入:arr = ...
资源简介:你要开发一座金矿,地质勘测学家已经探明了这座金矿中的资源分布,并用大小为 m * n 的网格 grid 进行了标注。每个单元格中的整数就表示这一单元格中的黄金数量;如果该单元格是空的,那么就是 0。为了使收益最大化,矿工需要按以下规则来开采黄金:· 每当矿工进入一个单元,就会收集该单元格中的所有黄金。· 矿工每次可...
资源简介:幂集。编写一种方法,返回某集合的所有子集。集合中不包含重复的元素。说明:解集不能包含重复的子集。示例输入:nums = [1,2,3]输出:[ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], []]分析从题意可以看出是使用回溯思想,由于要求集合中不包含重复的元素,所以可以先把输入集合中重复的元素去掉并且排...
资源简介:我们定义「顺次数」为:每一位上的数字都比前一位上的数字大 1 的整数。请你返回由 [low, high] 范围内所有顺次数组成的 有序 列表(从小到大排序)。示例1输出:low = 100, high = 300输出:[123,234]示例2输出:low = 1000, high = 13000输出:[1234,2345,3456,4567,5678,6789,12345]提示10 <= low <= high <= 10^9分析既...
资源简介:题目:无重复字符串的排列组合无重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合,字符串每个字符均不相同。示例1 输入:S = "qwe" 输出:["qwe", "qew", "wqe", "weq", "ewq", "eqw"]示例2 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。字符串长度在[1, 9]之间。分析经典的回溯问题,题目要...
资源简介:题目:有重复字符串的排列组合有重复字符串的排列组合。编写一种方法,计算某字符串的所有排列组合。示例1: 输入:S = "qqe" 输出:["eqq","qeq","qqe"]示例2: 输入:S = "ab" 输出:["ab", "ba"]提示:字符都是英文字母。字符串长度在[1, 9]之间。分析和昨天那道”无重复字符串的排列组合”类似,区别在于这道题的输入字...
资源简介:N皇后设计一种算法,打印 N 皇后在 N × N 棋盘上的各种摆法,其中每个皇后都不同行、不同列,也不在对角线上。这里的“对角线”指的是所有的对角线,不只是平分整个棋盘的那两条对角线。示例: 输入:4 输出:[[".Q..","...Q","Q...","..Q."],["..Q.","Q...","...Q",".Q.."]] 解释: 4 皇后问题存在如下两个不同的解法。[ [...
资源简介:编写一个程序,通过已填充的空格来解决数独问题。一个数独的解法需遵循如下规则:数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。 空白格用 '.' 表示。一个数独。答案被标成红色。Note:给定的数独序列只包含数字 1-9 和字符 '.' 。你可以假设给...
资源简介:题目980:不同路径III在二维网格 grid 上,有 4 种类型的方格1 表示起始方格。且只有一个起始方格。2 表示结束方格,且只有一个结束方格。0 表示我们可以走过的空方格。-1 表示我们无法跨越的障碍。返回在四个方向(上、下、左、右)上行走时,从起始方格到结束方格的不同路径的数目,每一个无障碍方格都要通过一次。示例1...