积分充值
 首页
前端开发
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文库
  • 综合
  • 文档
  • 文章

无数据

分类

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

语言

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

格式

全部PDF文档 PDF(9)PPT文档 PPT(6)
 
本次搜索耗时 0.077 秒,为您找到相关结果约 15 个.
  • 全部
  • 后端开发
  • C++
  • 全部
  • 中文(简体)
  • 中文(繁体)
  • 全部
  • PDF文档 PDF
  • PPT文档 PPT
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • ppt文档 C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vector

    resize 的目标长度大于原有的容量时, 就需要重新分配一段更大的连续内存,并 把原数组长度的部分移动过去,多出来的 部分则用 0 来填充。这就导致元素的地址 会有所改变,从而过去 data 返回的指针 以及所有的迭代器对象,都会失效。 vector 容器: resize 到更小尺寸不会导致 data 失效 • 当 resize 的目标长度小于原有的容量时, 不需要重新分配一段连续的内存也不会造 之后,数组的容量仍 然是 5 ,因此重新扩容到 5 是不需要重 新分配内存的,也就不会移动元素导致指 针失效。 vector 容器: capacity 函数查询实际的最大容量 • 可以用 capacity() 函数查询已经分配内存的大小,即最大容 量。 • 而 size() 返回的其实是已经存储了数据的数组长度。 • 可以发现当 resize 指定的新长度一个超过原来的最大容量时 时 时,就会重新分配一段更大容量的内存来存储数组,只有这时 才会移动元素的位置( data 指针失效)。 • size_t capacity() const noexcept; vector 容器: resize 的优化策略 • 注意这里 resize(7) 之后容量实际上扩充到了 10 而不是刚好 7 ,为什么 ? • 因为标准库的设计者非常聪明,他料想到了你 resize(7) 以后可能还会来
    0 码力 | 90 页 | 4.93 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.1.0 C++ 版

    345 15.2 分数背包问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 15.3 最大容量问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 15.4 最大切分乘积问题 . . 以动态地添加或删除元素,但它们的容量是固定的。如果数据量超出了预分配的大小,就需要创建一个新的 第 3 章 数据结构 hello‑algo.com 65 更大的数组,并将旧数组的内容复制到新数组中。 Q:在构建栈(队列)的时候,未指定它的大小,为什么它们是“静态数据结构”呢? 在高级编程语言中,我们无须人工指定栈(队列)的初始容量,这个工作由类内部自动完成。例如,Java 的 ArrayList 的初始容量通常为 (nums[i] == target) return i; } return -1; } 7. 扩容数组 在复杂的系统环境中,程序难以保证数组之后的内存空间是可用的,从而无法安全地扩展数组容量。因此在 大多数编程语言中,数组的长度是不可变的。 如果我们希望扩容数组,则需重新建立一个更大的数组,然后把原数组元素依次复制到新数组。这是一个 ?(?) 的操作,在数组很大的情况下非常耗时。代码如下所示:
    0 码力 | 379 页 | 18.47 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.0.0 C++版

    347 15.2 分数背包问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 15.3 最大容量问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 15.4 最大切分乘积问题 . . 以动态地添加或删除元素,但它们的容量是固定的。如果数据量超出了预分配的大小,就需要创建一个新的 第 3 章 数据结构 hello‑algo.com 65 更大的数组,并将旧数组的内容复制到新数组中。 Q:在构建栈(队列)的时候,未指定它的大小,为什么它们是“静态数据结构”呢? 在高级编程语言中,我们无须人工指定栈(队列)的初始容量,这个工作由类内部自动完成。例如,Java 的 ArrayList 的初始容量通常为 (nums[i] == target) return i; } return -1; } 7. 扩容数组 在复杂的系统环境中,程序难以保证数组之后的内存空间是可用的,从而无法安全地扩展数组容量。因此在 大多数编程语言中,数组的长度是不可变的。 如果我们希望扩容数组,则需重新建立一个更大的数组,然后把原数组元素依次复制到新数组。这是一个 ?(?) 的操作,在数组很大的情况下非常耗时。代码如下所示:
    0 码力 | 378 页 | 17.59 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.0.0b4 C++版

    . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 目 录 hello‑algo.com iii 15.3. 最大容量问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324 15.4. 最大切分乘积问题 . 数据结构 hello‑algo.com 38 3.1.2. 物理结构:连续与离散 在计算机中,内存和硬盘是两种主要的存储硬件设备。硬盘主要用于长期存储数据,容量较大(通常可达到 TB 级别)、速度较慢。内存用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。 在算法运行过程中,相关数据都存储在内存中。下图展示了一个计算机内存条,其中每个黑色方块都包含一 块内存空间。我们可以将内存想象成一个巨大的 Dynamic Array」的数据结构,即长度可变的数组,也常被称 为「列表 List」。列表基于数组实现,继承了数组的优点,并且可以在程序运行过程中动态扩容。在列表中, 我们可以自由添加元素,而无需担心超过容量限制。 4.3.1. 列表常用操作 初始化列表。通常我们会使用“无初始值”和“有初始值”的两种初始化方法。 // === File: list.cpp === /* 初始化列表 */ //
    0 码力 | 343 页 | 27.39 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.0.0b5 C++版

    350 15.2 分数背包问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354 15.3 最大容量问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 357 15.4 最大切分乘积问题 . . ‧ 网状结构:图,元素之间是多对多的关系。 3.1.2 物理结构:连续与离散 在计算机中,内存和硬盘是两种主要的存储硬件设备。硬盘主要用于长期存储数据,容量较大(通常可达到 TB 级别)、速度较慢。内存用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。 第 3 章 数据结构 hello‑algo.com 51 在算法运行过程中,相关数据都存储在内存中。图 3‑2 展示了一个计算机内存条,其中每个黑色方块都包含 (nums[i] == target) return i; } return -1; } 7. 扩容数组 在复杂的系统环境中,程序难以保证数组之后的内存空间是可用的,从而无法安全地扩展数组容量。因此在 大多数编程语言中,数组的长度是不可变的。 如果我们希望扩容数组,则需重新建立一个更大的数组,然后把原数组元素依次拷贝到新数组。这是一个 ?(?) 的操作,在数组很大的情况下是非常耗时的。
    0 码力 | 377 页 | 30.69 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.2.0 简体中文 C++ 版

    345 15.2 分数背包问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 15.3 最大容量问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 15.4 最大切分乘积问题 . . 结构可 以动态地添加或删除元素,但它们的容量是固定的。如果数据量超出了预分配的大小,就需要创建一个新的 第 3 章 数据结构 www.hello‑algo.com 65 更大的数组,并将旧数组的内容复制到新数组中。 Q:在构建栈(队列)的时候,未指定它的大小,为什么它们是“静态数据结构”呢? 在高级编程语言中,我们无须人工指定栈(队列)的初始容量,这个工作由类内部自动完成。例如,Java 的 ArrayList 的初始容量通常为 10。另外,扩容操作也是自动实现的。详见后续的“列表”章节。 Q:原码转补码的方法是“先取反后加 1”,那么补码转原码应该是逆运算“先减 1 后取反”,而补码转原码也 一样可以通过“先取反后加 1”得到,这是为什么呢? 这是因为原码和补码的相互转换实际上是计算“补数”的过程。我们先给出补数的定义:假设 ? + ? = ? , 那么我们称 ? 是
    0 码力 | 379 页 | 18.48 MB | 10 月前
    3
  • pdf文档 Hello 算法 1.2.0 繁体中文 C++ 版

    345 15.2 分數背包問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 15.3 最大容量問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 352 15.4 最大切分乘積問題 . . 可以動態地新增或刪除元素,但它們的容量是固定的。如果資料量超出了預分配的大小,就需要建立一個新 的更大的陣列,並將舊陣列的內容複製到新陣列中。 Q:在構建堆疊(佇列)的時候,未指定它的大小,為什麼它們是“靜態資料結構”呢? 在高階程式語言中,我們無須人工指定堆疊(佇列)的初始容量,這個工作由類別內部自動完成。例如,Java 的 ArrayList 的初始容量通常為 10。另外,擴容操作也是自動實現的。詳見後續的“串列”章節。 (nums[i] == target) return i; } return -1; } 7. 擴容陣列 在複雜的系統環境中,程式難以保證陣列之後的記憶體空間是可用的,從而無法安全地擴展陣列容量。因此 在大多數程式語言中,陣列的長度是不可變的。 如果我們希望擴容陣列,則需重新建立一個更大的陣列,然後把原陣列元素依次複製到新陣列。這是一個 ?(?) 的操作,在陣列很大的情況下非常耗時。程式碼如下所示:
    0 码力 | 379 页 | 18.79 MB | 10 月前
    3
  • pdf文档 Hello 算法 1.0.0b2 C++版

    characters[5]; bool booleans[5]; 3.1.2. 计算机内存 在计算机中,内存和硬盘是两种主要的存储硬件设备。「硬盘」主要用于长期存储数据,容量较大(通常可达 到 TB 级别)、速度较慢。「内存」用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。 算法运行中,相关数据都被存储在内存中。下图展示了一个计算机内存条,其中每个黑色方块都包含一块内存 空间。我们可以将内存想象成一个巨大的 List」的数据结构。列表可以被理解为长度可变的数组,因此也常 被称为「动态数组 Dynamic Array」。列表基于数组实现,继承了数组的优点,同时还可以在程序运行中实时 扩容。在列表中,我们可以自由地添加元素,而不用担心超过容量限制。 4.3.1. 列表常用操作 初始化列表。我们通常会使用到“无初始值”和“有初始值”的两种初始化方法。 // === File: list.cpp === /* 初始化列表 */ // 现。需要关注三个核心点: ‧ 初始容量:选取一个合理的数组的初始容量 initialCapacity 。在本示例中,我们选择 10 作为初始容量。 ‧ 数量记录:需要声明一个变量 size ,用来记录列表当前有多少个元素,并随着元素插入与删除实时更 新。根据此变量,可以定位列表的尾部,以及判断是否需要扩容。 ‧ 扩容机制:插入元素有可能导致超出列表容量,此时需要扩容列表,方法是建立一个更大的数组来替换
    0 码力 | 197 页 | 15.72 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.0.0b1 C++版

    characters[5]; bool booleans[5]; 3.1.2. 计算机内存 在计算机中,内存和硬盘是两种主要的存储硬件设备。「硬盘」主要用于长期存储数据,容量较大(通常可达 到 TB 级别)、速度较慢。「内存」用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。 算法运行中,相关数据都被存储在内存中。下图展示了一个计算机内存条,其中每个黑色方块都包含一块内存 空间。我们可以将内存想象成一个巨大的 List」的数据结构。列表可以被理解为长度可变的数组,因此也常 被称为「动态数组 Dynamic Array」。列表基于数组实现,继承了数组的优点,同时还可以在程序运行中实时 扩容。在列表中,我们可以自由地添加元素,而不用担心超过容量限制。 4.3.1. 列表常用操作 初始化列表。我们通常会使用到“无初始值”和“有初始值”的两种初始化方法。 // === File: list.cpp === /* 初始化列表 */ // 现。需要关注三个核心点: ‧ 初始容量:选取一个合理的数组的初始容量 initialCapacity 。在本示例中,我们选择 10 作为初始容量。 ‧ 数量记录:需要声明一个变量 size ,用来记录列表当前有多少个元素,并随着元素插入与删除实时更 新。根据此变量,可以定位列表的尾部,以及判断是否需要扩容。 ‧ 扩容机制:插入元素有可能导致超出列表容量,此时需要扩容列表,方法是建立一个更大的数组来替换
    0 码力 | 187 页 | 14.71 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 07 深入浅出访存优化

    不得不同时维护很多条预取赛道( mc_x, mc_y, mc_z ),当赛 道多了以后每一条赛道的长度就变短了,从而能够周转的余地时间比较少,不利于延迟隐藏。 而如果把这三条赛道合并成一条( mc ),这样同样的经费(缓存容量)能铺出的赛道(预 取)就更长,从而 CPU 有更长的周转时间来隐藏他内部计算的延迟。所以本案例中 AOS 比 SOA 好。 AOS 、 SOA 、 AOSOA 哪家强:结论 • 如果几个属性几乎总是同时一起用的,比如位置矢量 大小 来访问,是不连续的。 X 方向插桩:除了第一次读取的部分,全部都能命中 Y 方向插桩:只要缓存容量小于 nx*3 ,就永远无法命中 循环分块,降低命中所需的缓存容量 • 刚才说由于 Y 方向插桩的内存读取模式,有 nblur 次跳跃,每次跳跃的距离是 nx ,从而 缓存容量需要有 nx*nblur 那么大,才能利用 全部的缓存,而小彭老师的一级缓存只有 32KB 大。 • 的内层小循环 。 循环分块:用图片来直观感受 BM_y_blur BM_y_blur_tiled 分块以后,在 block 内部,即使是 Y 方向的跳跃访问,也是在 刚刚访问过的范围内,所以,只需缓存容量大于 blockSize*nblur 即可避免 cache miss 。 需要缓存: nx*nblur 需要缓存: blockSize*nblur 循环分块:用图片来直观感受 BM_y_blur
    0 码力 | 147 页 | 18.88 MB | 1 年前
    3
共 15 条
  • 1
  • 2
前往
页
相关搜索词
C++高性性能高性能并行编程优化课件13Hello算法1.11.00b40b51.2简体中文简体中文繁体繁体中文0b20b107
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩