积分充值
 首页
前端开发
AngularDartElectronFlutterHTML/CSSJavaScriptReactSvelteTypeScriptVue.js构建工具
后端开发
.NetC#C++C语言DenoffmpegGoIdrisJavaJuliaKotlinLeanMakefilenimNode.jsPascalPHPPythonRISC-VRubyRustSwiftUML其它语言区块链开发测试微服务敏捷开发架构设计汇编语言
数据库
Apache DorisApache HBaseCassandraClickHouseFirebirdGreenplumMongoDBMySQLPieCloudDBPostgreSQLRedisSQLSQLiteTiDBVitess数据库中间件数据库工具数据库设计
系统运维
AndroidDevOpshttpdJenkinsLinuxPrometheusTraefikZabbix存储网络与安全
云计算&大数据
Apache APISIXApache FlinkApache KarafApache KyuubiApache OzonedaprDockerHadoopHarborIstioKubernetesOpenShiftPandasrancherRocketMQServerlessService MeshVirtualBoxVMWare云原生CNCF机器学习边缘计算
综合其他
BlenderGIMPKiCadKritaWeblate产品与服务人工智能亿图数据可视化版本控制笔试面试
文库资料
前端
AngularAnt DesignBabelBootstrapChart.jsCSS3EchartsElectronHighchartsHTML/CSSHTML5JavaScriptJerryScriptJestReactSassTypeScriptVue前端工具小程序
后端
.NETApacheC/C++C#CMakeCrystalDartDenoDjangoDubboErlangFastifyFlaskGinGoGoFrameGuzzleIrisJavaJuliaLispLLVMLuaMatplotlibMicronautnimNode.jsPerlPHPPythonQtRPCRubyRustR语言ScalaShellVlangwasmYewZephirZig算法
移动端
AndroidAPP工具FlutterFramework7HarmonyHippyIoniciOSkotlinNativeObject-CPWAReactSwiftuni-appWeex
数据库
ApacheArangoDBCassandraClickHouseCouchDBCrateDBDB2DocumentDBDorisDragonflyDBEdgeDBetcdFirebirdGaussDBGraphGreenPlumHStreamDBHugeGraphimmudbIndexedDBInfluxDBIoTDBKey-ValueKitDBLevelDBM3DBMatrixOneMilvusMongoDBMySQLNavicatNebulaNewSQLNoSQLOceanBaseOpenTSDBOracleOrientDBPostgreSQLPrestoDBQuestDBRedisRocksDBSequoiaDBServerSkytableSQLSQLiteTiDBTiKVTimescaleDBYugabyteDB关系型数据库数据库数据库ORM数据库中间件数据库工具时序数据库
云计算&大数据
ActiveMQAerakiAgentAlluxioAntreaApacheApache APISIXAPISIXBFEBitBookKeeperChaosChoerodonCiliumCloudStackConsulDaprDataEaseDC/OSDockerDrillDruidElasticJobElasticSearchEnvoyErdaFlinkFluentGrafanaHadoopHarborHelmHudiInLongKafkaKnativeKongKubeCubeKubeEdgeKubeflowKubeOperatorKubernetesKubeSphereKubeVelaKumaKylinLibcloudLinkerdLonghornMeiliSearchMeshNacosNATSOKDOpenOpenEBSOpenKruiseOpenPitrixOpenSearchOpenStackOpenTracingOzonePaddlePaddlePolicyPulsarPyTorchRainbondRancherRediSearchScikit-learnServerlessShardingSphereShenYuSparkStormSupersetXuperChainZadig云原生CNCF人工智能区块链数据挖掘机器学习深度学习算法工程边缘计算
UI&美工&设计
BlenderKritaSketchUI设计
网络&系统&运维
AnsibleApacheAWKCeleryCephCI/CDCurveDevOpsGoCDHAProxyIstioJenkinsJumpServerLinuxMacNginxOpenRestyPrometheusServertraefikTrafficUnixWindowsZabbixZipkin安全防护系统内核网络运维监控
综合其它
文章资讯
 上传文档  发布文章  登录账户
IT文库
  • 综合
  • 文档
  • 文章

无数据

分类

全部后端开发(25)C++(25)

语言

全部中文(简体)(24)中文(繁体)(1)

格式

全部PPT文档 PPT(14)PDF文档 PDF(11)
 
本次搜索耗时 0.055 秒,为您找到相关结果约 25 个.
  • 全部
  • 后端开发
  • C++
  • 全部
  • 中文(简体)
  • 中文(繁体)
  • 全部
  • PPT文档 PPT
  • PDF文档 PDF
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • ppt文档 C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串

    和整数无异,例如 ‘ a’ 实际上会被编译器翻译成他对应的 ASCII 码: 97 。写 ‘ a’ 和写 (char)97 是完全一样的,方便阅读的语法糖而已。 “char 即整数”思想应用举例 “char 即整数”思想应用举例 C 语言帮手函数 帮手函数大全 • isupper(c) 判断是否为大写字母(‘ A’ <= c && c <= ‘Z’ )。 • islower(c) 判断是否为小写字母(‘ 就 能表示一个动态长度的数组,高,实在是高。 “0 结尾字符串”知识点应用举例 • 利用 C 语言字符串“以 0 结尾”这个特点,我们可以在一个 本来非 0 的字符处写入 0 ,来提前结束字符串。例如在第 n 个字符写入 0 ,就会只保留前 n 个字符作为一个子字 符串,删除后半部分。 “0 结尾字符串”知识点应用举例 • C 语言所谓的字符串类型 char * 实际上就是个首地址指 // 超级追求性能的极客 c_str 和 data 的区别 • const char * 可以隐式转换为 string (为了方便) • string 不可以隐式转换为 const char * (安全起见) • 如果确实需要从 string 转换为 const char * ,请调用 .c_str() 这个成员函数 。 字符串的连接( + 运算符) • C 语言规定,双引号包裹的字符串是 const
    0 码力 | 162 页 | 40.20 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.1.0 C++ 版

    计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 章 前言 hello‑algo.com 3 图 0‑1 本书主要内容 0.1.3 致谢 本书在开源社 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 总结以上内容,如表 2‑1 所示,迭代和递归在实现、性能和适用性上有所不同。
    0 码力 | 379 页 | 18.47 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.0.0 C++版

    例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 章 前言 hello‑algo.com 3 图 0‑1 本书主要内容 0.1.3 致谢 本书在开源社 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 总结以上内容,如表 2‑1 所示,迭代和递归在实现、性能和适用性上有所不同。 i; } return -1; } 值得说明的是,我们在实际中很少使用最佳时间复杂度,因为通常只有在很小概率下才能达到,可能会带来 一定的误导性。而最差时间复杂度更为实用,因为它给出了一个效率安全值,让我们可以放心地使用算法。 从上述示例可以看出,最差时间复杂度和最佳时间复杂度只出现于“特殊的数据分布”,这些情况的出现概率 可能很小,并不能真实地反映算法运行效率。相比之下,平均时间复杂度可以体现算法在随机输入数据下的
    0 码力 | 378 页 | 17.59 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.2.0 简体中文 C++ 版

    计算机的出现给世界带来了巨大变革,它凭借高速的计算能力和出色的可编程性,成为了执行算法与处理数 据的理想媒介。无论是电子游戏的逼真画面、自动驾驶的智能决策,还是 AlphaGo 的精彩棋局、ChatGPT 的自然交互,这些应用都是算法在计算机上的精妙演绎。 事实上,在计算机问世之前,算法和数据结构就已经存在于世界的各个角落。早期的算法相对简单,例如古 代的计数方法和工具制作步骤等。随着文明的进步,算法逐渐变得更加精细和复杂。从巧夺天工的匠人技艺、 例等。 ‧ 数据结构:基本数据类型和数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤 和示例问题等。 第 0 章 前言 www.hello‑algo.com 3 图 0‑1 本书主要内容 0.1.3 致谢 本书 2‑6 斐波那契数列的递归树 从本质上看,递归体现了“将问题分解为更小子问题”的思维范式,这种分治策略至关重要。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略直接或间接地应用了这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.2.3 两者对比 总结以上内容,如表 2‑1 所示,迭代和递归在实现、性能和适用性上有所不同。
    0 码力 | 379 页 | 18.48 MB | 10 月前
    3
  • pdf文档 Hello 算法 1.0.0b5 C++版

    例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、哈希表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。 第 0 章 前言 hello‑algo.com 3 图 0‑1 Hello 算法内容结构 0.1.3 致谢 2‑6 斐波那契数列的递归树 本质上看,递归体现“将问题分解为更小子问题”的思维范式,这种分治策略是至关重要的。 ‧ 从算法角度看,搜索、排序、回溯、分治、动态规划等许多重要算法策略都直接或间接地应用这种思维 方式。 ‧ 从数据结构角度看,递归天然适合处理链表、树和图的相关问题,因为它们非常适合用分治思想进行分 析。 2.3 时间复杂度 运行时间可以直观且准确地反映算法的效率。如果我们 i; } return -1; } 值得说明的是,我们在实际中很少使用最佳时间复杂度,因为通常只有在很小概率下才能达到,可能会带来 一定的误导性。而最差时间复杂度更为实用,因为它给出了一个效率安全值,让我们可以放心地使用算法。 从上述示例可以看出,最差或最佳时间复杂度只出现于“特殊的数据分布”,这些情况的出现概率可能很小, 并不能真实地反映算法运行效率。相比之下,平均时间复杂度可以体现算法在随机输入数据下的运行效率,
    0 码力 | 377 页 | 30.69 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.0.0b4 C++版

    法、常见类型、示例等。 ‧ 数据结构:基本数据类型,数据结构的分类方法。数组、链表、栈、队列、散列表、树、堆、图等数据 结构的定义、优缺点、常用操作、常见类型、典型应用、实现方法等。 ‧ 算法:搜索、排序、分治、回溯、动态规划、贪心等算法的定义、优缺点、效率、应用场景、解题步骤、 示例题目等。 0. 前言 hello‑algo.com 2 Figure 0‑1. Hello 算法内容结构 0.1.3. 致谢 � 生物学的“细胞分裂”是指数阶增长的典型例子:初始状态为 1 个细胞,分裂一轮后变为 2 个,分裂两轮后变为 4 个,以此类推,分裂 ? 轮后有 2? 个细胞。 指数阶增长非常迅速,在实际应用中通常是不可接受的。若一个问题使用「暴力枚举」求解的时间复杂度为 ?(2?) ,那么通常需要使用「动态规划」或「贪心算法」等方法来解决。 // === File: time_complexity.cpp 在数组尾部时,达到最差时间复杂度 O(n) if (nums[i] == 1) return i; } return -1; } � 实际应用中我们很少使用「最佳时间复杂度」,因为通常只有在很小概率下才能达到,可能会 带来一定的误导性。相反,「最差时间复杂度」更为实用,因为它给出了一个“效率安全值”, 让我们可以放心地使用算法。 从上述示例可以看出,最差或最佳时间复杂度只出现在“特殊分布的数据”中,这些情况的出现概率可能很
    0 码力 | 343 页 | 27.39 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程

    接受一个时间点的 sleep_until ,表示让当 前线程休眠直到某个时间点。 第 1 章:线程 进程与线程 • 进程是一个应用程序被操作系统拉起来加载到内存之后从开始执行到执行结束的这样一个 过程。简单来说,进程是程序(应用程序,可执行文件)的一次执行。比如双击打开一个 桌面应用软件就是开启了一个进程。 • 线程是进程中的一个实体,是被系统独立分配和调度的基本单位。也有说,线程是 CPU 可 对于高性能并行计算,更好的是多线程。 为什么需要多线程:无阻塞多任务 • 我们的程序常常需要同时处理多个任务。 • 例如:后台在执行一个很耗时的任务,比 如下载一个文件,同时还要和用户交互。 • 这在 GUI 应用程序中很常见,比如浏览 器在后台下载文件的同时,用户仍然可以 用鼠标操作其 UI 界面。 没有多线程:程序未响应 • 没有多线程的话,就必须等文件下载完了 才能继续和用户交互。 • 下载完成前,整个界面都会处于“未响应”状 CMakeLists.txt 里链接 Threads::Threads 即可: 有了多线程:异步处理请求 • 有了多线程的话,文件下载和用户交互分 别在两个线程,同时独立运行。从而下载 过程中也可以响应用户请求,提升了体验 。 • 可是发现一个问题:我输入完 pyb 以后, 他的确及时地和我交互了。但是用户交互 所在的主线程退出后,文件下载所在的子 线程,因为从属于这个主线程,也被迫退 出了。
    0 码力 | 79 页 | 14.11 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 03 现代 C++ 进阶:模板元编程

    编译慢的原因找到了……因为他们用了大量的模板 。 模板的应用:编译期优化案例 • 在右边这个案例中,我们声明了一个 sumto 函数,作用是求出从 1 到 n 所有 数字的和。 • 用一个 debug 参数控制是否输出调试信 息。 • 但是这样 debug 是运行时判断,这样即 使是 debug 为 false 也会浪费 CPU 时 间。 模板的应用:编译期优化案例(续) • 因此可以把 debug 留了调试用的打印语句,后者则完全为性 能优化而可以去掉打印语句。 • 后者其实在编译器看来就是 • if (false) std::cout << ... • 这样显然是会被他自动优化掉的。 模板的应用:编译期分支 • 更进一步,可以用 C++17 的 if constexpr 语法,保证是编译期确定的分支: • (下一讲会深入分析编译器的工作原理) 模板的难题:编译期常量的限制 • 如果说 int & 相当于 int * ,那么 int const & 就相当于 int const * 。 • const 修饰符的存在,使得 ref 不能被写入(赋值)。 • 这样的好处是更加安全(编译器也能够放心大胆地做自动优化): 自动类型推导:定义引用( auto & ) • 当然, auto 也可以用来定义引用,只需要改成 auto & 即可: 自动类型推导:定义常引用( auto
    0 码力 | 82 页 | 12.15 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理

    C++ 的 解构函数是显式的,离开作用域自动销毁,毫不含 糊(有好处也有坏处,对高性能计算而言利大于 弊) 如果没有解构函数,则每个带有返回的分 支都要手动释放所有之前的资源 : RAII :异常安全( exception-safe ) C++ 标准保证当异常发生时,会调用已创建对象的解构函数 。 因此 C++ 中没有(也不需要) finally 语句。 如果此处不关闭,则可等 待稍后垃圾回收时关闭。 14f) 不会出错,但是 int{3.14f} 会出错,因为 {} 是非强制转换。 2. Pig(“ 佩奇” , 3.14f) 不会出错,但是 Pig{“ 佩奇” , 3.14f} 会出错,原因同上,更安全。 3. 可读性: Pig(1, 2) 则 Pig 有可能是个函数, Pig{1, 2} 看起来更明确。 • 其实谷歌在其 Code Style 中也明确提出别再通过 () 调用构造函数,需要类型转换时应该 初始化,否则有可能会变成内 存里的随机值。 • 顺便一提, C++20 中还可以通过指定名称来跳顺序: 编译器默认生成的构造函数:初始化列表(妙用,解决函数多返回值) • 典型的例子包括,图形学某知名应用中, 可以简化函数具有多个返回值的处理。 • 和 std::tuple 相比,最大的好处是每个属性都有名字 ,不容易搞错。举个例子: • auto [hit, pos, ...] = intersect(
    0 码力 | 96 页 | 16.28 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 06 TBB 开启的并行编程之旅

    显然不是。甚至在两个处理器上同时运行两个线程也不见得可以获得两倍的性能。相似的 ,大多数多线程的应用不会比双核处理器的两倍快。他们应该比单核处理器运行的快,但 是性能毕竟不是线性增长。 • 为什么无法做到呢?首先,为了保证缓存一致性以及其他握手协议需要运行时间开销。在 今天,双核或者四核机器在多线程应用方面,其性能不见得的是单核机器的两倍或者四倍。 这一问题一直伴随 CPU 发展至今。 并发和并行的区别 完毕后才去认领下一个任务,从而即使每个任务 工作量不一也能自动适应。 • 这种技术又称为线程池( thread pool ),避免了 线程需要保存上下文的开销。但是需要我们管理 一个任务队列,而且要是线程安全的队列。 struct Task { int x0, y0; int nx, ny; }; std::queue q; 1 2 3 4 解决 3 :每个线程一个任务队 运算符访问当前指 向的元素。 可安全地被多线程并发访问 • 除了内存不连续、指针和迭代器不失效的 特点, tbb::concurrent_vector 还是一个多 线程安全的容器,能够被多个线程同时并 发地 grow_by 或 push_back 而不出错 。 • 而 std::vector 只有只读的 .size() 和 [] 运算符是安全的,且不能和写入的 push_back
    0 码力 | 116 页 | 15.85 MB | 1 年前
    3
共 25 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
C++高性性能高性能并行编程优化课件15Hello算法1.11.01.2简体中文简体中文0b50b405030206
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩