Taming the C++ Filter View©2024 by josuttis.com 1 C++ Nicolai M. Josuttis josuttis.com @NicoJosuttis Taming the C++ Filter View September 17, 2024 16:45 - 17:45 MDT ©2024 by josuttis.com 2 C++ Nicolai M. Josuttis • Independent Topics: – Systems Architect – Technical Manager – SOA – X and OSF/Motif Nico Josuttis C++ Filter View @cppcon 2024-09-17 1©2024 by josuttis.com 3 C++ Views C++20 ©2024 by josuttis.com 4 C++ C++20: Output: 0 8 15 47 11 42 1 0 1 8 11 15 42 47 C++20 templateNico Josuttis C++ Filter View @cppcon 2024-09-17 2©2024 by josuttis.com 5 C++ C++20: Views void print(const auto& coll) { for 0 码力 | 43 页 | 2.77 MB | 6 月前3
Unraveling string_view: Basics, Benefits, and Best PracticesC++: string_view: Deep dive Jasmine Lopez Prithvi Okade 1Topics • Motivation • Performance benefits & basics • string_view: Constructors, useful functions • string vs. string_view and their interoperability interoperability • When to use string_view • Using string_view safely • Intro to span • span vs. string_view • Case study of an optimization using string_view. 2Motivation • Consider a function foo will end up calling “2”. And the code will miss the niceties of using the string API set. string_view helps in resolving this problem elegantly.Motivation 4 void foo(const std::string& str); void foo(const0 码力 | 61 页 | 1.11 MB | 6 月前3
C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串容器初体验 & 迭代器入门 (BV1qF411T7sd) 2. 你所不知道的 set 容器 & 迭代器分类 (BV1m34y157wb) 3. string , string_view , const char * 的爱恨纠葛 ( 本期 ) 4. 万能的 map 容器全家桶及其妙用举例 5. 函子 functor 与 lambda 表达式知多少 6 ring_view name); // 超级追求性能的极客 c_str 和 data 的区别 • const char * 可以隐式转换为 string (为了方便) • string 不可以隐式转换为 const char * (安全起见) • 如果确实需要从 string 转换为 const char * ,请调用 .c_str() 这个成员函数 。 字符串的连接( + 运算符) • “hello” + string(“world”) // 正确 • string(“hello”) + string(“world”) // 正确(推荐) 字符串的连接( + 运算符) • 错误: • 正确: C++14 新特性:自定义字面量后缀 • 不少同学就觉得这样好麻烦,其他语言都是直接 “ hello” 就是字符串类 型, C++ 还得套一层壳 string(“hello”)0 码力 | 162 页 | 40.20 MB | 1 年前3
《深入浅出MFC》2/echap8~chap16 5,171,266 dissecting MFC 2/e part5.pdf appendix A,B,C,D 1,527,111 每个档案都可个别阅读。每个档案都有书签(亦即目录连接)。每个档案都不 需密码即可打开、选择文字、打印。 请告诉我您的资料 每 一 位 下 载 此 份 电 子 书 的 朋 友 , 我 希 望 您 写 一 封 emai l 給 我 (j j 两本应该是够用了。不然就再加上一本SDK 书籍, 这样子应该是可以打个基础了。 CCA.bbs@cis.nctu.edu.tw:函数名称可以查help,重要的是C++ 的观念。另外就是要了 解MFC 里的Document/View/Frame,以及Dynamic Creation, Message mapping 等等。 深入浅出MFC 第二版对这些部份都有很深入的探讨,把MFC 里的一些机制直接trace code 加以说明。 程序设计模型(注2)息息相关之特殊性质(注3)的 实作方式。 注1:此指runtime type information、dynamic creation、persistence、document/view¡ K。 注2:此指message based、event driven 之programming model。 注3:此指message mapping、command routing ¡ K。0 码力 | 1009 页 | 11.08 MB | 1 年前3
Hello 算法 1.0.0b2 C++版数据结构与算法的关系 如果将「LEGO 乐高」类比到「数据结构与算法」,那么可以得到下表所示的对应关系。 数据结构与算法 LEGO 乐高 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 1. 引言 hello‑algo.com 11 � 约定俗成的简称 在实际讨论中,我们通常会将「数据结构与算法」直接简称为「算法」。例如,我们熟称的 算法是在有限时间内解决特定问题的一组指令或操作步骤,数据结构是在计算机中组织与存储数据的方 式。 ‧ 数据结构与算法两者紧密联系。数据结构是算法的底座,算法是发挥数据结构的舞台。 ‧ 乐高积木对应数据,积木形状和连接形式对应数据结构,拼装积木的流程步骤对应算法。 12 2. 复杂度分析 2.1. 算法效率评估 2.1.1. 算法评价维度 在开始学习算法之前,我们首先要想清楚算法的设计目标是什么,或者说,如何来评判算法的好与坏。整体上 即可。 4. 数组与链表 hello‑algo.com 49 「链表 Linked List」是一种线性数据结构,其中每个元素都是单独的对象,各个元素(一般称为结点)之间通 过指针连接。由于结点中记录了连接关系,因此链表的存储方式相比于数组更加灵活,系统不必保证内存地址 的连续性。 链表的「结点 Node」包含两项数据,一是结点「值 Value」,二是指向下一结点的「指针 Pointer」(或称「引0 码力 | 197 页 | 15.72 MB | 1 年前3
Hello 算法 1.1.0 C++ 版1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供基于多种编程语言的实现。 约定俗成的简称 在实际 构是计算机中组织和存储数据的 方式。 ‧ 数据结构与算法紧密相连。数据结构是算法的基石,而算法是数据结构发挥作用的舞台。 ‧ 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 17 第 2 章 复杂度分析 Abstract 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 UTF‑16 编码的字符串的长度也是 ?(1) 的操作。但是,计算 UTF‑8 编码的字符串的长度需要遍历整个字符串。 ‧ 字符串操作:在 UTF‑16 编码的字符串上,很多字符串操作(如分割、连接、插入、删除等)更容易进行。 在 UTF‑8 编码的字符串上,进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,涉及许多因素。0 码力 | 379 页 | 18.47 MB | 1 年前3
Hello 算法 1.0.0b5 C++版1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供多种编程语言的实现。 � 约定俗成的简称 在实 是计算机中组织和存储数据的 方式。 ‧ 数据结构与算法紧密相连。数据结构是算法的基石,而算法则是发挥数据结构作用的舞台。 ‧ 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式代表数据结构,拼 装积木的步骤则对应算法。 16 第 2 章 复杂度分析 � 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 与随机访问类似,计算 UTF‑16 字符串的长度也是 ?(1) 的操作。但是,计算 UTF‑8 编码的 字符串的长度需要遍历整个字符串。 ‧ 字符串操作: 在 UTF‑16 编码的字符串中,很多字符串操作(如分割、连接、插入、删除等)都更容易进 行。在 UTF‑8 编码的字符串上进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,其涉及到许多因素。0 码力 | 377 页 | 30.69 MB | 1 年前3
Hello 算法 1.0.0 C++版1‑5 拼装积木 两者的详细对应关系如表 1‑1 所示。 表 1‑1 将数据结构与算法类比为拼装积木 数据结构与算法 拼装积木 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得说明的是,数据结构与算法是独立于编程语言的。正因如此,本书得以提供基于多种编程语言的实现。 � 约定俗成的简称 构是计算机中组织和存储数据的 方式。 ‧ 数据结构与算法紧密相连。数据结构是算法的基石,而算法是数据结构发挥作用的舞台。 ‧ 我们可以将数据结构与算法类比为拼装积木,积木代表数据,积木的形状和连接方式等代表数据结构, 拼装积木的步骤则对应算法。 17 第 2 章 复杂度分析 � 复杂度分析犹如浩瀚的算法宇宙中的时空向导。 它带领我们在时间与空间这两个维度上深入探索,寻找更优雅的解决方案。 UTF‑16 编码的字符串的长度也是 ?(1) 的操作。但是,计算 UTF‑8 编码的字符串的长度需要遍历整个字符串。 ‧ 字符串操作:在 UTF‑16 编码的字符串上,很多字符串操作(如分割、连接、插入、删除等)更容易进行。 在 UTF‑8 编码的字符串上,进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 实际上,编程语言的字符编码方案设计是一个很有趣的话题,涉及许多因素。0 码力 | 378 页 | 17.59 MB | 1 年前3
Hello 算法 1.0.0b4 C++版hello‑algo.com 11 Figure 1‑5. 拼装积木 两者的详细对应关系如下表所示。 数据结构与算法 LEGO 乐高 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 值得注意的是,数据结构与算法独立于编程语言。正因如此,本书得以提供多种编程语言的实现。 � 约定俗成的简称 在实际讨 储数据的 方式。 1. 初识算法 hello‑algo.com 12 ‧ 数据结构与算法紧密相连。数据结构是算法的基石,而算法则是发挥数据结构作用的舞台。 ‧ 乐高积木对应于数据,积木形状和连接方式代表数据结构,拼装积木的步骤则对应算法。 13 2. 复杂度 2.1. 算法效率评估 2.1.1. 算法评价维度 从总体上看,算法设计追求以下两个层面的目标: 1. 找到问题解法。算 与随机访问类似,计算 UTF‑16 字符串的长度也是 ?(1) 的操作。但是,计算 UTF‑8 编码的 字符串的长度需要遍历整个字符串。 ‧ 字符串操作: 在 UTF‑16 编码的字符串中,很多字符串操作(如分割、连接、插入、删除等)都更容易进 行。在 UTF‑8 编码的字符串上进行这些操作通常需要额外的计算,以确保不会产生无效的 UTF‑8 编码。 编程语言的字符编码方案设计是一个很有趣的话题,涉及到许多因素:0 码力 | 343 页 | 27.39 MB | 1 年前3
Hello 算法 1.0.0b1 C++版数据结构与算法的关系 如果将「LEGO 乐高」类比到「数据结构与算法」,那么可以得到下表所示的对应关系。 数据结构与算法 LEGO 乐高 输入数据 未拼装的积木 数据结构 积木组织形式,包括形状、大小、连接方式等 算法 把积木拼成目标形态的一系列操作步骤 输出数据 积木模型 1. 引言 hello‑algo.com 11 � 约定俗成的简称 在实际讨论中,我们通常会将「数据结构与算法」直接简称为「算法」。例如,我们熟称的 算法是在有限时间内解决特定问题的一组指令或操作步骤,数据结构是在计算机中组织与存储数据的方 式。 ‧ 数据结构与算法两者紧密联系。数据结构是算法的底座,算法是发挥数据结构的舞台。 ‧ 乐高积木对应数据,积木形状和连接形式对应数据结构,拼装积木的流程步骤对应算法。 12 2. 复杂度分析 2.1. 算法效率评估 2.1.1. 算法评价维度 在开始学习算法之前,我们首先要想清楚算法的设计目标是什么,或者说,如何来评判算法的好与坏。整体上 即可。 4. 数组与链表 hello‑algo.com 49 「链表 Linked List」是一种线性数据结构,其中每个元素都是单独的对象,各个元素(一般称为结点)之间通 过指针连接。由于结点中记录了连接关系,因此链表的存储方式相比于数组更加灵活,系统不必保证内存地址 的连续性。 链表的「结点 Node」包含两项数据,一是结点「值 Value」,二是指向下一结点的「指针 Pointer」(或称「引0 码力 | 187 页 | 14.71 MB | 1 年前3
共 211 条
- 1
- 2
- 3
- 4
- 5
- 6
- 22













