Hello 算法 1.2.0 繁体中文 C++ 版記憶體是所有程式的共享資源,當某塊記憶體被某個程式佔用時,則通常無法被其他程式同時使用了。因此 在資料結構與演算法的設計中,記憶體資源是一個重要的考慮因素。比如,演算法所佔用的記憶體峰值不應 超過系統剩餘空閒記憶體;如果缺少連續大塊的記憶體空間,那麼所選用的資料結構必須能夠儲存在分散的 記憶體空間內。 如圖 3‑3 所示,物理結構反映了資料在計算機記憶體中的儲存方式,可分為連續空間儲存(陣列)和分散空 型別使用 UTF‑16 編碼,每個字元佔用 2 位元組。這是因為 Java 語言設計之初,人們 認為 16 位足以表示所有可能的字元。然而,這是一個不正確的判斷。後來 Unicode 規範擴展到了超 過 16 位,所以 Java 中的字元現在可能由一對 16 位的值(稱為“代理對”)表示。 ‧ JavaScript 和 TypeScript 的字串使用 UTF‑16 編碼的原因與 Java 類似。當 Microsoft 設計的,而 Microsoft 的很多技術(包 括 Windows 作業系統)都廣泛使用 UTF‑16 編碼。 由於以上程式語言對字元數量的低估,它們不得不採取“代理對”的方式來表示超過 16 位長度的 Unicode 字元。這是一個不得已為之的無奈之舉。一方面,包含代理對的字串中,一個字元可能佔用 2 位元組或 4 位 元組,從而喪失了等長編碼的優勢。另一方面,處理代理對需要額外增加程式碼,這提高了程式設計的複雜0 码力 | 379 页 | 18.79 MB | 10 月前3
面向亿行 C/C++ 代码的静态分析系统设计及实践-肖枭使用有深度的代码分析器 做到快速和准确 用尽量少机器完成一天几千次分析 每次分析10分钟要能结束 控制误报并建立反馈和改进机制 挑战:超大规模代码仓库 项目平均40分钟单机编译时间 项目平均编译代码量超百万行 编译的价值 C/C++代码逻辑受编 译参数深度控制 源代码索引和统计 提升开源静态分析工 具分析质量 提高分析质量 测试项目 glog (谷歌的日志项目), 17个源文件。0 码力 | 39 页 | 6.88 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践 template• struct Derived : Base > {}; CRTP 的改进:如果基类还想基于另一个类 • 现在我们的需求有变,需要新增一个“超狗 (superdog)” 类,他继承自普通狗 (dog) 。 • 这时我们可以给 IObjectClone 新增一个模板参数 Base ,其默认值为 IObject 。 • 这样当用户需要的时候就 0 码力 | 54 页 | 3.94 MB | 1 年前3
C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型自动 来做的,比我们软件哈希和指针数组的稀疏更高效,写起来 就和普通的二维数组没什么两样,就好像顺序访问。也用不 着什么访问者缓存坐标和块指针了,硬件的 TLB 就是我们 的访问者缓存,而且超快不需要用户自己写。 • 垃圾回收可用 madvice 提前释放一段页面。 • 除此之外, mmap 还有一个好处,他会保证其内存(被读 取访问时)是零初始化的。 配合莫顿分块, AOSOA 等第七课的技术,就得到0 码力 | 102 页 | 9.50 MB | 1 年前3
现代C++ 教程:高速上手C++11/14/17/20特性外,就没有其他的看法了,甚至直接回答『差不 多』,也是大有人在。图 1.2 中的韦恩图大致上回答了 C 和 C++ 相关的兼容情况。 从现在开始,你的脑子里应该树立『C++ 不是 C 的一个超集』这个观念(而且从一开始就不是, 后面的进一步阅读的参考文献中给出了 C++98 和 C99 之间的区别)。在编写 C++ 时,也应该尽可能 的避免使用诸如 void* 之类的程序风格。而在不得不使用0 码力 | 83 页 | 2.42 MB | 1 年前3
《深入浅出MFC》2/e什么是 Application Framework? 还没有学习任何一套Application Framework 的使用之前,就给你近乎学术性的定义,我 可以想象对你而言绝对是「形而上的」(超物质的无形哲理),尤其如果你对对象导向 (Object Oriented)也还没有深刻体会的话。形而上者谓之道,形而下者谓之器,我想能 够舍器而直接近道者,几稀!但是,「定义」这种东西又似乎宜开宗明义摆在前头。我 的文章以及書籍,是濁世㆗的㆒股清流。這些文章書籍 的作者分為兩個類型:㆒種是流星型的㆟物,出了㆒、兩本有意義的書,如流星畫過㆝際, 閃亮! 然後...沒了,徒留懷念;另㆒種是㆒小族群的所謂超級巨星,他們有穩定而質佳的 好作品,日復㆒日,年復㆒年。 這種超級巨星的特徵是什麼?他們通常都有數年的實際程式經驗,才不至於光說不練;他 們對於程式寫作有㆒股近乎狂熱的感情;他們寫他們所做的,不寫他們所聽的;他們能夠 很快認知0 码力 | 1009 页 | 11.08 MB | 1 年前3
Hello 算法 1.1.0 C++ 版tree)除了叶节点之外,其余所有节点都有两个子节点。 图 7‑6 完满二叉树 4. 平衡二叉树 如图 7‑7 所示,平衡二叉树(balanced binary tree)中任意节点的左子树和右子树的高度之差的绝对值不超 过 1 。 图 7‑7 平衡二叉树 7.1.4 二叉树的退化 图 7‑8 展示了二叉树的理想结构与退化结构。当二叉树的每层节点都被填满时,达到“完美二叉树”;而当所 有节点都偏向一侧时,二叉树退化为“链表”。0 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.2.0 简体中文 C++ 版tree)除了叶节点之外,其余所有节点都有两个子节点。 图 7‑6 完满二叉树 4. 平衡二叉树 如图 7‑7 所示,平衡二叉树(balanced binary tree)中任意节点的左子树和右子树的高度之差的绝对值不超 过 1 。 图 7‑7 平衡二叉树 7.1.4 二叉树的退化 图 7‑8 展示了二叉树的理想结构与退化结构。当二叉树的每层节点都被填满时,达到“完美二叉树”;而当所 有节点都偏向一侧时,二叉树退化为“链表”。0 码力 | 379 页 | 18.48 MB | 10 月前3
共 8 条
- 1













