Hidden Overhead of a Function API
performance, we typically think about the function logic. We’ll see that a well designed function API can have an even larger impact.How will we compare performance? ● Benchmarks at this low level are advance(RandIter& iter, Diff n, random_access_iterator_tag) { iter += n; } ● Access token to make some API available only inside the library (like the default “package private” access modifier in Java) Empty0 码力 | 158 页 | 2.46 MB | 5 月前3GraphBLAS: Building a C++ Matrix API for Graph Algorithms
the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 4[DISTRIBUTION the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 5[DISTRIBUTION the important data structures and concepts? Prior work in the GraphBLAS community, C API Overview of our draft C++ API How might this interoperate with standard C++, graph library proposal? 6[DISTRIBUTION0 码力 | 172 页 | 7.40 MB | 5 月前3C++高性能并行编程与优化 - 课件 - 01 学 C++ 从 CMake 学起
库就是受到他启发(完全是头文件组成) 6. fmtlib/fmt - 格式化库,提供 std::format 的替代品(需要 -DFMT_HEADER_ONLY ) 7. gabime/spdlog - 能适配控制台,安卓等多后端的日志库(和 fmt 冲突!) • 只需要把他们的 include 目录或头文件下载下来,然后 include_directories(spdlog/include) 即 可。 • 缺点:函数直 为例)的源码放到你工程的根目录: • 这些库能够很好地支持作为子模块引入: 1. fmtlib/fmt - 格式化库,提供 std::format 的替代品 2. gabime/spdlog - 能适配控制台,安卓等多后端的日志库 3. ericniebler/range-v3 - C++20 ranges 库就是受到他启发 4. g-truc/glm - 模仿 GLSL 语法的数学矢量 / 矩阵库 5. abseil/abseil-cpp0 码力 | 32 页 | 11.40 MB | 1 年前3《深入浅出MFC》2/e
框架十分了解,但在编程过程中仍然 感到生疏,主要是函数的运用和函数的参数十分复杂。我对WINDOWS SDK 编程较少,是 否应该要熟悉WINDOWS API 函数后,结合MFC 框架编程? 侯俊杰回复:的确如此。MFC 其实就是把Windows API 做了一层薄薄包装,包装于各个设 计良好的classes 而已。所以,掌握了MFC framework 架构组织之后,接下来在programming 與 MFC / 327 縱覽 MFC / 329 General Purpose classes / 330 Windows API classes / 333 深入淺出 MFC 18 Application framework classes / 334 High level 虽然许多名词已经耳熟能详,我想我还是有必要把它们界定一下: API - Application Programming Interface。系统开放出来,给程序员使用的接口,就是 API。一般人的观念中API 是指像C 函数那样的东西,不尽然!DOS 的中断向量 (interrupt vector)也可以说是一种API,OLE Interface(以C++ 类别的形式呈现)也可 以说是一种API。不是有人这么说吗:MFC 势将成为Windows0 码力 | 1009 页 | 11.08 MB | 1 年前3现代C++ 教程:高速上手C++11/14/17/20
C++ 中的编程范式。 现代 C++ 还为自身的标准库增加了非常多的工具和方法,诸如在语言自身标准的层面上制定了 std::thread,从而支持了并发编程,在不同平台上不再依赖于系统底层的 API,实现了语言层面的跨 平台支持;std::regex 提供了完整的正则表达式支持等等。C++98 已经被实践证明了是一种非常成功 的『范型』,而现代 C++ 的出现,则进一步推动这种范型,让 C++ std::cout << "hello world." << std::endl; }); t.join(); return 0; } 7.2 互斥量与临界区 我们在操作系统、亦或是数据库的相关知识中已经了解过了有关并发技术的基本知识,mutex 就是 其中的核心之一。C++11 引入了 mutex 相关的类,其所有相关的函数都放在头文件中。 std::mutex 0 码力 | 83 页 | 2.42 MB | 1 年前3Hello 算法 1.0.0b1 C++版
哈希表通过建立「键 key」和「值 value」之间的映射,实现高效的元素查找。具体地,输入一个 key ,在哈 希表中查询并获取 value ,时间复杂度为 ?(1) 。 例如,给定一个包含 ? 个学生的数据库,每个学生有“姓名 name ”和“学号 id ”两项数据,希望实现一个查 询功能:输入一个学号,返回对应的姓名,则可以使用哈希表实现。 Figure 6‑1. 哈希表的抽象表示 6.1.1. com 121 查找结点 「AVL 树」的结点查找操作与「二叉搜索树」一致,在此不再赘述。 7.4.4. AVL 树典型应用 ‧ 组织存储大型数据,适用于高频查找、低频增删场景; ‧ 用于建立数据库中的索引系统; � 为什么红黑树比 AVL 树更受欢迎? 红黑树的平衡条件相对宽松,因此在红黑树中插入与删除结点所需的旋转操作相对更少,结点 增删操作相比 AVL 树的效率更高。 7.5.0 码力 | 187 页 | 14.71 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理
因为疏忽大意造成的不必要拷贝。而当的 确需要拷贝时,也可以改成 Pig(pig) 语法 来强制拷贝。 为什么很多面向对象语言,比如 Java ,都没有构造函数全家桶这些概念? • 因为他们的业务需求大多是:打开数据库,增删改查学生数据,打开一个窗口,写入一个 文件,正则匹配是不是电邮地址,应答 HTTP 请求等。 • 这些业务往往都是在和资源打交道,从而基本都是刚刚说的要删除拷贝函数的那一类,解 决这种需求,几乎总是在用0 码力 | 96 页 | 16.28 MB | 1 年前3Hello 算法 1.0.0b2 C++版
哈希表通过建立「键 key」和「值 value」之间的映射,实现高效的元素查找。具体地,输入一个 key ,在哈 希表中查询并获取 value ,时间复杂度为 ?(1) 。 例如,给定一个包含 ? 个学生的数据库,每个学生有“姓名 name ”和“学号 id ”两项数据,希望实现一个查 询功能:输入一个学号,返回对应的姓名,则可以使用哈希表实现。 Figure 6‑1. 哈希表的抽象表示 6.1.1. 121 } 查找结点 「AVL 树」的结点查找操作与「二叉搜索树」一致,在此不再赘述。 7.4.4. AVL 树典型应用 ‧ 组织存储大型数据,适用于高频查找、低频增删场景; ‧ 用于建立数据库中的索引系统; � 为什么红黑树比 AVL 树更受欢迎? 红黑树的平衡条件相对宽松,因此在红黑树中插入与删除结点所需的旋转操作相对更少,结点 增删操作相比 AVL 树的效率更高。 7.5.0 码力 | 197 页 | 15.72 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串
hex 选项。 • 但是他的输出会保存到一个字符串里。 • 调用成员函数 .str() 就能取出这个字符串了。 • 之后这个字符串就可以用作其他用途,比如 printf 打印,或者用于查询数据库,都没问题。 • 这里比较无聊,最后还是直接输出到了 cout 。 stringstream 也可以取代 stoi • 刚刚展示了 stringstream 模仿 cout 的方法。 • stringstream0 码力 | 162 页 | 40.20 MB | 1 年前3Hello 算法 1.0.0b4 C++版
Table」通过建立键 key 与值 value 之间的映射,实现高效的元素查询。具体而言,我们向哈 希表输入一个 key ,则可以在 ?(1) 时间内获取对应的 value 。 以一个包含 ? 个学生的数据库为例,每个学生都有“姓名”和“学号”两项数据。假如我们希望实现“输入 一个学号,返回对应的姓名”的查询功能,则可以采用哈希表来实现。 Figure 6‑1. 哈希表的抽象表示 除哈希表外,我们 树的节点查找操作与二叉搜索树一致,在此不再赘述。 7. 树 hello‑algo.com 147 7.5.4. AVL 树典型应用 ‧ 组织和存储大型数据,适用于高频查找、低频增删的场景。 ‧ 用于构建数据库中的索引系统。 � 为什么红黑树比 AVL 树更受欢迎? 红黑树的平衡条件相对宽松,因此在红黑树中插入与删除节点所需的旋转操作相对较少,在 节点增删操作上的平均效率高于 AVL 树。 7.60 码力 | 343 页 | 27.39 MB | 1 年前3
共 196 条
- 1
- 2
- 3
- 4
- 5
- 6
- 20