C++高性能并行编程与优化 - 课件 - 17 由浅入深学习 map 容器## 由浅入深学习 map 容器 by 彭于斌 (@archibate) 我负责监督你鞋习! 本期看点: 用方括号 [ ] 取出 map 元素居然是错误的! 能不能在遍历的同时删除元素?安全吗? emplace, emplace hint, try_emplace 的区别? 判断是否存在,用 m.count(key)若存在则删除,用 m.erase(key) ## 第四章:迭代与遍历  面壁者罗辑监督你鞋习! 逻辑格式 又不参与排序,完全可以随意改变。因此 C++ 之父允许 map 的迭代器不 const,而是让 pair 中的 K 单独加上 const 修饰,V 不加 const。这样既能防止用户不小心修改了 K,也能允许随意自由修改不参与排序的 V。 set 从上面查询这输出的结果可以看出,username 为 iteblog 的 email 全部修改成一样的了!这就是静态列的强大之处。 现在表中存在了用户的邮箱和密码等信息,如果我们前端做了个页面支持用户修改自己的邮箱和密码,这时候我们的后台系统需要获取到现有的邮箱和密码,具体如下: cqlsh:iteblog_keyspace> SELECT0 码力 | 5 页 | 0 Bytes | 2 年前3
理解Python中的AST 何翔宇 asdl 使用 Python/python-ast.c 生成 AST - PyAST_CompileObject()、PySymtable_BuildObject()、compiler_mod() - 遍历 AST 各个节点创建符号表 - 交给一个巨大「switch」处理,创建 CFG ## Emit: - 使用深度优先搜索来铺平 CFG - 计算字节码的偏移量  ast.NodeTransfromer:这个类允许遍历抽象语法树同时可以修改节点,通过继承该类,并且实现 visit_{NODE_NAME} 方法,可以自定义该节点的处理方法。如果没有定义处理方法将会调用 NodeVisitor 中的 generic_visit 处理。 Python source via the AST • 通过 Armin Ronacher 的 codegen.py 直接编译,生成易于阅读的源码 · 打印出美观的 AST 便于调试 · 提供非递归的遍历能力 ## ☀️ ☀️ ☁️ >>> import ast >>> import astor >>> tree = ast.parse(0 码力 | 39 页 | 6.95 MB | 2 年前3
5 How to integrate Graph mode into RDBMS smoothly TiGraph 项目尝试验证在分布式关系型数据中无缝集成图模式: ● 同时包含关系型模型和图模型 ● 同一个事务中操作图数据和关系型数据的能力 将图遍历作为 SQL 子查询(反之亦然) - 在 SQL 中扩展出一个让 DBA 一眼就能学会的图遍历语法 ● 对于 N 度人脉的场景性能对比 ## 第二部分 ## 关系型数据库 ## 关系型数据库本质 CREATE TABLE user_table 4323); mysql> -- 查找某一个用户的三度人脉的下单记录 |id|user\_id|item\_id| |---|---|---| |1|4|19230| |2|6|4323| 图遍历结果作为子查询 ## 第五部分 ## Benchmark ## Benchmark Query time (s) 是 JavaScript 语言的下一代标准,已经在2015年6月正式发布了。它的目标,是使得 提到 ES6 的地方,一般是指 ES2015 标准,但有时也是泛指“下一代 JavaScript 语言”。 ## 语法提案的批准流程 任何人都可以向标准委员会(又称 TC39 委员会)提案,要求修改语言标准。 一种新的语法从提案到变成正式标准,需要经历五个阶段。每个阶段的变动都需要由 TC39 委员会批准。 • Stage 0 - Strawman(展示阶段) • Stage 1 - Proposal(征求意见阶段) "...", "eslint": "..." } } Mocha 则是一个测试框架,如果需要执行使用 ES6 语法的测试脚本,可以修改 package.json 的 scripts.test。 "scripts": { "test": "mocha --ui qunit --compilers0 码力 | 679 页 | 2.66 MB | 2 年前3
Hello 算法 1.0.0b1 Golang版5.2. 队列 5.3. 双向队列 5.4. 小结 6. 散列表 6.1. 哈希表 6.2. 哈希冲突 6.3. 小结 7. 树 7.1. 二叉树 7.2. 二叉树遍历 7.3. 二叉搜索树 7.4. AVL树* 7.5. 小结 8. 堆 8.1. 堆 8.2. 建堆操作* 8.3. 小结 10. 123 13 27 34 67 74 88 101 110 122 123 131 133 9. 图 135 9.1. 图 135 9.2. 图基础操作 139 9.3. 图的遍历 147 9.4. 小结 154 10. 查找算法 155 10.1. 线性查找 155 10.2. 二分查找 156 10.3. 哈希查找 160 10.4. 小结 163 阅读。 感谢腾宝、琦宝、飞宝为本书起了个好听又有梗名字,直接唤起我最初敲下第一行代码 “Hello World!” 的回忆。 · 感谢苏潼为本书设计了封面和 LOGO,在我的强迫症下前后多次帮忙修改,谢谢你的耐心。 · 感谢 @squidfunk 给出的写作排版建议,以及优秀开源项目 Material-for-MkDocs。 本书鼓励“手脑并用”的学习方式,在这点上受到了《动手学深度学习》0 码力 | 190 页 | 14.71 MB | 2 年前3
Golang 101(Go语言101 中文版) v1.21.amod文件。当前目录将被视为一个名为example.com/myproject的模块(即当前项目)的根目录。此go.mod文件将被用来记录当前项目需要的依赖模块和版本信息。我们可以手动编辑或者使用go子命令来修改此文件。 - go mod tidy命令用来通过扫描当前项目中的所有代码来添加未被记录的依赖至go.mod文件或从go.mod文件中删除不再被使用的依赖。 - go get命令用拉添加、升级、降级或者删除单个依赖。此命令不如go 像很多其它流行编程语言一样,Go也使用一对大括号{ and }来形成一个显式代码块。但是在Go代码中,编码样式风格有一些限制。比如,很多左大括号{不能被放到下一行。如果,上面的StatRandomNumbers被修改成如下所示,则上面的示例程序将编译不通过。 func StatRandomNumbers(numRands int) (int, int) { // 编译错误:语法错误 var a, b int 而有效避免了字面常量3.1416在代码中出现在多处。如果字面常量3.1416在代码中出现在多处,当我们以后欲将3.1416改为3.14的时候,所有出现在代码中的3.1416都得逐个修改。有了具名常量的帮助,我们只需修改对应常量描述中的3.1416即可。这是常量声明的主要作用。当然常量声明也可常常增加代码的可读性(代码即注释)。 以后,我们使用非常量这一术语表示不是常量的值。下一节将要介绍的变量就属于非常量。0 码力 | 608 页 | 1.08 MB | 2 年前3
Hello 算法 1.2.0 简体中文 Java 版第7章 树 7.1 二叉树 7.2 二叉树遍历 7.3 二叉树数组表示 7.4 二叉搜索树 7.5 AVL树* 7.6 小结 第8章 堆 8.1 堆 8.2 建堆操作 8.3 Top-k 问题 8.4 小结 第9章 图 9.1 图 9.2 图的基础操作 9.3 图的遍历 9.4 小结 第10章 搜索 10.1 二分查找 “Hello World!” 的美好回忆; · 感谢校铨在知识产权方面提供的专业帮助,这对本开源书的完善起到了重要作用; · 感谢苏潼为本书设计了精美的封面和 logo,并在我的强迫症的驱使下多次耐心修改; · 感谢 @squidfunk 提供的排版建议,以及他开发的开源文档主题 Material-for-MkDocs。 在写作过程中,我阅读了许多关于数据结构与算法的教材和文章。这些作品为本书提 $ 1 + 2 + \cdots + n $ ,求和结果使用变量 res 记录。需要注意的是,Python 中 $ \text{range}(a, b) $ 对应的区间是 “左闭右开” 的,对应的遍历范围为 $ a, a + 1, \ldots, b - 1 $ : /// == File: iteration.java === /* for 循环 */ int forLoop(int n)0 码力 | 379 页 | 18.48 MB | 1 年前3
阮一峰 JavaScript 教程项目和 Ember 项目都发布了1.0版本。 2012年,微软发布 TypeScript 语言。该语言被设计成 JavaScript 的超集,这意味着所有 JavaScript 程序,都可以不经修改地在 TypeScript 中运行。同时,TypeScript 添加了很多新的语法特性,主要目的是为了开发大型程序,然后还可以被编译成 JavaScript 运行。 2012年,Mozilla 基金会提出 - 表达式还是语句? 属性的操作 - 属性的读取 - 属性的赋值 - 属性的查看 - 属性的删除:delete 命令 - 属性是否存在:in 运算符 - 属性的遍历:for...in 循环 with 语句 参考链接 ## 对象 ## 概述 ## 生成方法 对象(object)是 JavaScript 语言的核心概念,也是最重要的数据类型。 上面代码中,直接对 obj 对象的 foo 属性赋值,结果就在运行时创建了 foo 属性。 ## 对象的引用 如果不同的变量名指向同一个对象,那么它们都是这个对象的引用,也就是说指向同一个内存地址。修改其中一个变量,会影响到其他所有变量。 1. var o1 = {} 2. var o2 = o1; 3. 4. o1.a = 1; 5. o2.a // 1 6. 7. o2.b = 2; 8. o10 码力 | 540 页 | 3.32 MB | 1 年前3
Hello 算法 1.0.0b2 Golang版二叉树 7.2. 二叉树遍历 7.3. 二叉搜索树 7.4. AVL树* 7.5. 小结 8. 堆 8.1. 堆 8.2. 建堆操作* 8.3. 小结 101 104 113 126 126 134 137 9. 图 138 9.1. 图 138 9.2. 图基础操作 142 9.3. 图的遍历 150 9.4. 小结 157 阅读。 感谢腾宝、琦宝、飞宝为本书起了个好听又有梗名字,直接唤起我最初敲下第一行代码 “Hello World!” 的回忆。 · 感谢苏潼为本书设计了封面和 LOGO,在我的强迫症下前后多次帮忙修改,谢谢你的耐心。 · 感谢 @squidfunk 给出的写作排版建议,以及优秀开源项目 Material-for-MkDocs。 本书鼓励“手脑并用”的学习方式,在这点上受到了《动手学深度学习》 count; } 「遍历数组」和「遍历链表」等操作,时间复杂度都为 $ O(n) $ ,其中n为数组或链表的长度。  数据大小 n 是根据输入数据的类型来确定的。比如,在上述示例中,我们直接将 n 看作输入数据大小;以下遍历数组示例中,数据大小0 码力 | 202 页 | 15.73 MB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













