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

无数据

分类

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

语言

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

格式

全部PPT文档 PPT(18)PDF文档 PDF(10)
 
本次搜索耗时 0.080 秒,为您找到相关结果约 28 个.
  • 全部
  • 后端开发
  • C++
  • 全部
  • 中文(简体)
  • 中文(繁体)
  • 全部
  • PPT文档 PPT
  • PDF文档 PDF
  • 默认排序
  • 最新排序
  • 页数排序
  • 大小排序
  • 全部时间
  • 最近一天
  • 最近一周
  • 最近一个月
  • 最近三个月
  • 最近半年
  • 最近一年
  • ppt文档 C++高性能并行编程与优化 - 课件 - 11 现代 CMake 进阶指南

    里构建,即: make -C build -j4 // 调用本地的构建系统执行 install 这个目标,即安 装 -D 选项:指定配置变量(又称缓存变量) • 可见 CMake 项目的构建分为两步: • 第一步是 cmake -B build ,称为配置阶段( configure ),这时只检测环境并生成构建规则 • 会在 build Makefile 或是 .sln ) • 第二步是 cmake --build build ,称为构建阶段( build ),这时才实际调用编译器来编译代码 • 在配置阶段可以通过 -D 设置缓存变量。第二次配置时,之前的 -D 添加仍然会被保留。 • cmake -B build -DCMAKE_INSTALL_PREFIX=/opt/openvdb-8.0 • ↑ 设置安装路径为 /opt/openvdb-8 -DCMAKE_BUILD_TYPE=Release • ↑ 设置构建模式为发布模式(开启全部优化) • cmake -B build ← 第二次配置时没有 -D 参数,但是之前的 -D 设置的变量都会被保留 • (此时缓存里仍有你之前定义的 CMAKE_BUILD_TYPE 和 CMAKE_INSTALL_PREFIX ) -G 选项:指定要用的生成器 • 众所周知, CMake 是一个跨平台的构建系统,可以从
    0 码力 | 166 页 | 6.54 MB | 1 年前
    3
  • pdf文档 现代C++ 教程:高速上手C++11/14/17/20

    . . . . . . . . . . . . . . . . . . . 13 2.2 变量及其初始化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 if/switch 变量声明强化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 7.4 条件变量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7.5 关键字被弃用,可以使用但不再具备任何实际含义。 • bool 类型的 ++ 操作被弃用。 • 如果一个类有析构函数,为其生成拷贝构造函数和拷贝赋值运算符的特性被弃用了。 • C 语言风格的类型转换被弃用(即在变量前使用 (convert_type)),应该使用 static_cast、 reinterpret_cast、const_cast 来进行类型转换。 • 特别地,在最新的 C++17 标准中弃用了一些可以使用的
    0 码力 | 83 页 | 2.42 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 03 现代 C++ 进阶:模板元编程

    模板的难题:编译期常量的限制 • 编译期常量的限制就在于他不能通过运行时变量组成的表达式来指定。比如: • 这里在 if constexpr 的表达式里用到了运行时变量,从而无法作为编译期分支的条件。 模板的难题:编译期常量的限制(续) • 除了 if constexpr 的表达式不能用运行时变量,模板尖括号内的参数也不能: • 可以在 bool debug 变量的定义前面加上 constexpr 来解决: • 没有 auto 的话,需要声明一个变量,必须重复一遍他的类型,非常麻烦 : 自动类型推导:定义变量 因此 C++11 引入了 auto ,使用 auto 定义的变量,其类型会自动根据等号右边的值来确定 : 自动类型推导:一些局限性 • 不过 auto 也并非万能,他也有很多限制。 • 因为需要等号右边的类型信息,所以没有 = 单独声明一个 auto 变量是不行的: • 而且,类成员也不可以定义为 而且,类成员也不可以定义为 auto : 自动类型推导:函数返回值 • 除了可以用于定义变量,还可以用作函数的返回类型: • 使用 auto 以后,会自动被推导为 return 右边的类型。 • 不过也有三点注意事项: 1. 当函数有多条 return 语句时,所有语句的返回类型必须一致,否则 auto 会报错。 2. 当函数没有 return 语句时, auto 会被推导为 void 。 3. 如果声明和实现分离了,则不能声明为
    0 码力 | 82 页 | 12.15 MB | 1 年前
    3
  • pdf文档 《深入浅出MFC》2/e

    member function 成员变量 data member,亦有他书译为「数据成员」 基础类别 Base Class,亦即父类别 衍生类别 Derived Class,亦即子类别 深入淺出 MFC 34 本书符号习惯 斜体字表示函数、常数、变量、语言保留字、宏、识别码等等,例如: CreateWindow 这是Windows 消息 ID_FILE_OPEN 这是资源识别码(ID) CDocument::Serialize 这是MFC 类别的成员函数 m_pNewViewClass 这是MFC 类别的成员变量 BEGIN_MESSAGE_MAP 这是MFC 宏 public 这是C++ 语言保留字 当我解释程序操作步骤时,如果使用中括号,例如【File/New】,表示选按File 菜单中 的New HIWORD(wParam); #0104 #0105 switch (wmId) { #0106 case IDM_ABOUT: 产生窗口 存储为全域变量,方便使用 显示窗口 窗口函数 13 #0107 DialogBox(_hInst, // Wi nmai n第一个参数,应用程序的实例句柄
    0 码力 | 1009 页 | 11.08 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针

    刚刚说过,计算机的位数决定了内存地址的大小。 • 而指针的本质就是内存地址,所以指针的大小在 32 位系统上就 32 位, 64 位系统上就 64 位。 • 稍后我们再来详细讲解一下指针,有时候我们需要把指针的地址值存在整型变量里。 • 而 32 位平台上的指针是 32 位, 64 位平台上的指针是 64 位。 • 所以是不是需要根据当前平台来判断要使用哪一种代码了? • 不需要,可以用自动随系统位数变化的 intptr_t 而刚刚的例子中我们的 abs 返回类型其实始 终是 int ,被送到 printf 里却以 “ %f” 的方式 去读出,所以出错了。 • 因此我们先把 abs 的返回值写入到一个 float 类型变量里试试看,果然有了变化。 • 但还是不对,按理说 abs(-3.14) 应该是 3.14 的,怎么会变成 3.00 呢? abs 函数:取出整数的绝对值 • 这就是第二个 bug 了, C 1048576 个房子。 变量在内存中的存储方式(大端字节序) 地址 字节 刚刚说过一个 int 由四个字节组成,因此一个 int 类型要占据四栋房子。 而对于 int 类型的四个字节要按照什么顺序放入四栋房子,有两种方式。 其中大端字节序( big-endian )就是先从高地址开始存字节的方式。 比如假设 x=1 的话,那么大端字节序的存储方式是: 变量在内存中的存储方式(小端字节序)
    0 码力 | 128 页 | 2.95 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南

    build 才能更新。 • 加了,则每次 cmake --build 时自动检测目录是否更新,如果目录有新文件了, CMake 会自动帮你重新运行 cmake -B build 更新 myvar 变量。 六、头文件和源文件的一一对应关系 • 通常每个头文件都有一个对应的源文件,两个文件名字应当相同 (方便我们理解,也方便 IDE 跳转),只有后缀名不一样。 • 如果是一个类,则文件名应和类名相同,方便查找 里写一些你常用的函数,宏,变量等。 十三、你知道吗? CMake 也有 include 功能 • 和 C/C++ 的 #include 一样, CMake 也有一个 include 命令。 • 你写 include(XXX) ,则他会在 CMAKE_MODULE_PATH 这个列表 中的所有路径下查找 XXX.cmake 这个文件。 • 这样你可以在 XXX.cmake 里写一些你常用的函数,宏,变量等。 include 相当于直接把代码粘贴过去,直接访问调用者的作用域。这里创建的变量和外面共 享,直接 set(key val) 则调用者也有 ${key} 这个变量了。 • function 中则是基于定义者所在路径,优先访问定义者的作用域。这里需要 set(key val PARENT_SCOPE) 才能修改到外面的变量。 第二章:第三方库 / 依赖项配置 用 find_package 寻找系统中安装的第三方库并链接他们
    0 码力 | 56 页 | 6.87 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程

    等待所有子线程执行完毕。所以另一种解 法是把 t1 对象移动到一个全局变量去, 从而延长其生命周期到 myfunc 函数体外 。 • 这样就可以等下载完再退出了。 main 函数退出后自动 join 全部线程 • 但是需要在 main 里面手动 join 全部线 程还是有点麻烦,我们可以自定义一个类 ThreadPool ,并用他创建一个全局变量, 其解构函数会在 main 退出后自动调用。 std::jthread ,独立地上 锁,可以避免不必要的锁定,提升高并发 时的性能。 • 还用了一个 {} 包住 std::lock_guard ,限 制其变量的作用域,从而可以让他在 } 之 前解构并调用 unlock() ,也避免了和下面 一个 lock_guard 变量名冲突。 如果上锁失败,不要等待: try_lock() • 我们说过 lock() 如果发现 mutex 已经上锁 的话,会等待他直到他解锁。 const ? 第 6 章:条件变量 条件变量:等待被唤醒 • cv.wait(lck) 将会让当前线程陷入等待。 • 在其他线程中调用 cv.notify_one() 则会唤 醒那个陷入等待的线程。 • 可以发现 std::condition_variable 必须和 std::unique_lock 一起用,稍 后会解释原因。 条件变量:等待某一条件成真 •
    0 码力 | 79 页 | 14.11 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.1.0 C++ 版

    代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合在预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 : // === File: iteration i = 1; // 初始化条件变量 // 循环求和 1, 2, ..., n-1, n while (i <= n) { res += i; i++; // 更新条件变量 } return res; } while 循环比 for 循环的自由度更高。在 while 循环中,我们可以自由地设计条件变量的初始化和更新步 骤。 例如在以下代码中,条件变量 ? 每轮进行两次更新,这种情况就不太方便用 循环(两次更新) */ int whileLoopII(int n) { int res = 0; int i = 1; // 初始化条件变量 // 循环求和 1, 4, 10, ... while (i <= n) { res += i; // 更新条件变量 i++; i *= 2; } return res; } 总的来说,for 循环的代码更加紧凑,while 循环更加灵活,
    0 码力 | 379 页 | 18.47 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践

    函数是 C/C++ 程序中 第一个执行的函数,是程序的入口点。 • 但,他真的是第一个执行的吗? 全局变量初始化的妙用 • 我们可以定义一个 int 类型全局变量 helper ,然后他的右边其实是可以写一个表达 式的,这个表达式实际上会在 main 函数之 前执行! • 全局变量的初始化会在 main 之前执行,这实 际上是 C++ 标准的一部分,我们完全可以放 心利用这一点来执行任意表达式。 在函数体内也可以这样: • [&]{ xxx; yyy; return zzz; }() • 来在语句块内使用外部的局部变量。 带有构造函数和解构函数的类 • 实际上,只需定义一个带有构造函数和解构函 数的类(这里的 Helper ),然后一个声明该类 的全局变量( helper ),就可以保证: • 1. 该类的构造函数一定在 main 之前执行 • 2. 该类的解构函数一定在 main 为了寻找思路,我们把眼光挪开全局的 static 变量,来看看函数的 static 变量吧 ! • 众所周知,函数体内声明为 static 的变量 即使函数退出后依然存在。 • 实际上函数的 static 变量也可以指定初始 化表达式,这个表达式会在第一次进入函 数时执行。注意:是第一次进入的时候执 行而不是单纯的在 main 函数之前执行哦 ! 如果函数体内的 static 变量是一个类呢? • 如果函数体内的
    0 码力 | 54 页 | 3.94 MB | 1 年前
    3
  • pdf文档 Hello 算法 1.0.0b5 C++版

    段代码,直到这个条件不再满足。 1. for 循环 for 循环是最常见的迭代形式之一,适合预先知道迭代次数时使用。 以下函数基于 for 循环实现了求和 1 + 2 + ⋯ + ? ,求和结果使用变量 res 记录。需要注意的是,Python 中 range(a, b) 对应的区间是“左闭右开”的,对应的遍历范围为 ?, ? + 1, … , ? − 1 。 // === File: iteration whileLoop(int n) { int res = 0; int i = 1; // 初始化条件变量 // 循环求和 1, 2, ..., n-1, n while (i <= n) { res += i; i++; // 更新条件变量 } return res; } 在 while 循环中,由于初始化和更新条件变量的步骤是独立在循环结构之外的,因此它比 for 循环的自由度 更高。 第 2 章 hello‑algo.com 20 例如在以下代码中,条件变量 ? 每轮进行了两次更新,这种情况就不太方便用 for 循环实现。 // === File: iteration.cpp === /* while 循环(两次更新) */ int whileLoopII(int n) { int res = 0; int i = 1; // 初始化条件变量 // 循环求和 1, 4, ... while
    0 码力 | 377 页 | 30.69 MB | 1 年前
    3
共 28 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
C++高性性能高性能并行编程优化课件11现代教程高速上手14172003深入深入浅出MFC121605Hello算法1.11.00b5
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩