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

无数据

分类

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

语言

全部中文(简体)(27)

格式

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

    template • 是完全等价的,只是个人喜好不同。 模板函数:自动推导参数类型 • 那这样需要手动写 , 用起 来还不如重载方便了? • 别担心, C++ 规定: • 当模板类型参数 T 作为函数参数时,则可 以省略该模板参数。自动根据调用者的参 数判断。 模板函数:特化的重载 • 有时候,一个统一的实现(比如 t * 2 模板函数:默认参数类型 • 但是如果模板类型参数 T 没有出现在函数 的参数中,那么编译器就无法推断,就不 得不手动指定了。 • 但是,可以通过 • template • 表示调用者没有指定时, T 默认为 int 。 模板参数:整数也可以作为参数 • template • 可以声明类型 T 作为模板尖括号里的参数。除了 类型,任意整数也可以作为模板参数: 类型,任意整数也可以作为模板参数: • template • 来声明一个整数 N 作为模板参数。 • 不过模板参数只支持整数类型(包括 enum )。 • 浮点类型、指针类型,不能声明为模板参数。自 定义类型也不可以,比如: • template // 错误! 模板参数:多个模板参数 • int N 和 class T 可以一起使用。
    0 码力 | 82 页 | 12.15 MB | 1 年前
    3
  • pdf文档 现代C++ 教程:高速上手C++11/14/17/20

    类型别名模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 变长参数模板 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 折叠表达式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 非类型模板参数推导 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.6 面向对象 . . . . 提供了完整的正则表达式支持等等。C++98 已经被实践证明了是一种非常成功 的『范型』,而现代 C++ 的出现,则进一步推动这种范型,让 C++ 成为系统程序设计和库开发更好的 语言。Concept 提供了对模板参数编译期的检查,进一步增强了语言整体的可用性。 总而言之,我们作为 C++ 的拥护与实践者,始终保持接纳新事物的开放心态,才能更快的推进 C++ 的发展,使得这门古老而又新颖的语言更加充满活力。
    0 码力 | 83 页 | 2.42 MB | 1 年前
    3
  • pdf文档 《深入浅出MFC》2/e

    MFC 程序设计》(编按:深入浅出MFC 简体版),对我有非常大的帮助。在 此,先感谢您。现在我感到对C++ 语言本身和MFC 框架十分了解,但在编程过程中仍然 感到生疏,主要是函数的运用和函数的参数十分复杂。我对WINDOWS SDK 编程较少,是 否应该要熟悉WINDOWS API 函数后,结合MFC 框架编程? 侯俊杰回复:的确如此。MFC 其实就是把Windows API 做了一层薄薄包装,包装于各个设 RC #0059 wc.lpszClassName = _szAppName; #0060 程序名称 窗口标题 程序进入点 避免编译时的警告 传回 PostQuitMessage 的参数 注册窗口类别 窗口函数 窗口背景颜色 所定义的菜单 12 #0061 return (RegisterClass(&wc)); #0062 } #0063 //-------- 产生窗口 存储为全域变量,方便使用 显示窗口 窗口函数 13 #0107 DialogBox(_hInst, // Wi nmai n第一个参数,应用程序的实例句柄 #0108 "AboutBox", // 对话框资源名称 #0109
    0 码力 | 1009 页 | 11.08 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 13 C++ STL 容器全解之 vector

    侯捷 STL 侯捷 STL vector 容器 vector 容器:构造函数 • vector 的功能是长度可变的数组,他里面的数据 存储在堆上。 • vector 是一个模板类,第一个模板参数是数组里 元素的类型。 • 例如,声明一个元素是 int 类型的动态数组 a : • vector a; vector 容器:构造函数和 size • vector 可以在构造时指定初始长度。 会初始化为空字符串,指针类型会初始化为 nullptr ) • explicit vector(size_t n); vector 容器:构造函数 • 这个显式构造函数还可以指定第二个参数,这样 就可以用 0 以外的值初始化整个数组了。 • 比如要创建 4 个 233 组成的数组就可以写: • vector a(4, 233); • 等价于 • vector vector a; • a.resize(4); • void resize(size_t n); vector 容器: resize • 当然, resize 也有一个接受第二参数的重载 ,他会用这个参数的值填充所有新建的元素。 • vector a(4, 233); • 等价于: • vector a; • a.resize(4, 233); • void
    0 码力 | 90 页 | 4.93 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 02 现代 C++ 入门:RAII 内存管理

    deduction / 编 译期参数推断 当代: C++17 引入常用数值算法 未来: C++20 引入区间( ranges ) https://zhuanlan.zhihu.com/p/350068132 未来: C++20 引入模块( module ) https://zhuanlan.zhihu.com/p/350136757 未来: C++20 允许函数参数为自动推断( auto ) BV1h64y197Fd 自定义构造函数:无参数 自定义构造函数:无参数(使用初始化表达式) 为什么需要初始化表达式? 1. 假如类成员为 const 和引用 2. 假如类成员没有无参构造函数 3. 避免重复初始化,更高效 自定义构造函数:多个参数 自定义构造函数:单个参数 自定义构造函数:单个参数(陷阱) 自定义构造函数:单个参数(避免陷阱) 避免陷阱体现在哪里? • 加了 explicit 否则 show(80) 也能编译通过! • 所以,如果你不希望这种隐式转换, • 请给单参数的构造函数加上 explicit 。 • 比如 std::vector 的构造函数 vector(size_t n) 也是 explicit 的。 explicit 对多个参数也起作用! • 多个参数时, explicit 的作用体现在禁止 从一个 {} 表达式初始化。 • 如果你希望在一个返回
    0 码力 | 96 页 | 16.28 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 15 C++ 系列课:字符与字符串

    必须告诉他是字符串( %s )还是整数( %d )还是 字符( %c ),必须和右边的参数一致,初学者容易搞错 。 • 而且即使搞错了也能正常编译通过(一些高级的编译器会 给出警告),但是运行结果不对,或者还有可能崩溃。 泛型的 iostream 应运而生 • 得益于 C++ 的重载技术, cout 不用你手动指定类型,他 会自动识别参数的类型,帮你调用相应的格式化函数。 c_str 和 data 的区别 data() 只保证返回长度为 s.size() 的连续内存的首地址指针,不保证 0 结 尾。 • 把 C++ 的 string 作为参数传入像 printf 这种 C 语言函数时,需要用 s.c_str() 。 • 如果只是在 C++ 函数之间传参数,直接用 string 或 string const & 即可。 • void legacy_c(const char *name); stoi(“42”) 等价,都会返回 42 。后面的 “ yuan” 会被 stoi 略去。 • 那如何才能知道哪些字符被 stoi 略去了呢?或者说,数字部分从哪里结束? • 这就要用到 stoi 的第二参数,他是一个 size_t 的指针,默认为 nullptr 。 • 若该指针不为 nullptr ,则会往他指向的变量写入一个整数,表示数字部分结 束的那个字符所在的位置,很绕口?来看个例子就懂了。
    0 码力 | 162 页 | 40.20 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程

    C++ 中的多线程: std::thread • C++11 开始,为多线程提供了语言级别的 支持。他用 std::thread 这个类来表示线 程。 • std::thread 构造函数的参数可以是任意 lambda 表达式。 • 当那个线程启动时,就会执行这个 lambda 里的内容。 • 这样就可以一边和用户交互,一边在另一 个线程里慢吞吞下载文件了。 错误:找不到符号 如果线程在指定的时间内执行完毕,则认为等 待成功,返回 future_status::ready 。 • 同理还有 wait_until() 其参数是一个时间点。 另一种用法: std::launch::deferred 做参数 • std::async 的第一个参数可以设为 std::launch::deferred ,这时不会创建一个 线程来执行,他只会把 lambda 函数体内 的运算推迟到 的返回类型可以为 void , 这时 future 对象 的类型为 std::future 。 • 同理有 std::promise ,他的 set_value() 不接受参数,仅仅作为同步用, 不传递任何实际的值。 第 3 章:互斥量 多线程打架案例 • 两个线程试图往同一个数组里推数据。 • 奔溃了!为什么? • vector 不是多线程安全( MT-safe
    0 码力 | 79 页 | 14.11 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 08 CUDA 开启的 GPU 编程

    __global__ 用于定义核函数,他在 GPU 上执行,从 CPU 端通过三重尖括号语法调 用,可以有参数,不可以有返回值。 • 而 __device__ 则用于定义设备函数,他在 GPU 上执行,但是从 GPU 上调用的,而 且不需要三重尖括号,和普通函数用起来一 样,可以有参数,有返回值。 • 即: host 可以调用 global ; global 可以调 用 device ; 多遍,每次针对不同的架构,所以编译会 变得非常慢,生成的可执行文件也会变大 。 • 通常在自己的电脑上用时,同学们只要根 据自己显卡的指定一个版本号即可。 如果 CMakeLists.txt 里没有指定,也可以从命令行参数指定 : 版本号和商品名对照表 • 版本 52 : Quadro M6000 , GeForce 900, GTX-970, GTX-980, GTX Titan X • 版本 53 : Tegra 这种奇怪的语法,这里面 的数字代表什么意思呢? • 不妨把 <<<1, 1>>> 改成 <<<1, 3>>> 试试 看。你会看到 Hello, world! 打印了三遍! • 原来,三重尖括号里的第二个参数决定着启动 kernel 时所用 GPU 的线程数量。 • GPU 是为并行而生的,可以开启很大数量的 线程,用于处理大吞吐量的数据。 获取线程编号 • 可以通过 threadIdx.x
    0 码力 | 142 页 | 13.52 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - 12 从计算机组成原理看 C 语言指针

    的错误:不会编译时检测参数类型是否正确 • 第一个 bug 是, printf 其实不知道他的参数是什 么类型,他只看到你字符串里写的 “ %f” ,会误以 为输入的是 float 参数。 • 如果你输入的是 3 这样的 int 类型常量, C 语 言不会帮你检测到他和 “ %f” 其实是不匹配的,而 是直接把 int 类型的 4 个字节推到栈上作为 printf 的参数,而 printf double 的开销了。 • 此外, 3.14 也最好改成 3.14f 。因为 3.14 是 double 类型的常量, 3.14f 才是 float 类 型的常量。 std::abs 函数:自动根据参数类型判断要使用的重载 • 在 C++ 中可以用 std::abs 替代 abs ,这个 在 std 命名空间中的版本是带有多种重载的。 • 建议别用全局的任何函数( C 语言原始的), 始终带上 结果显示第一个房间里的字节是 0x78 。 • 可见我们的 x86 架构是小端字节序。 指针的用途举例:用于函数的多个返回值 • 我们知道函数只能有一个返回值,如果需 要返回多个变量,可以用指针作为参数。 • 第一个返回值照常通过 return 返回,第二 个返回值会写入到调用者提供的指针所指 向的变量。 • 这里,指针的作用就在于,通过获取调用 者变量的地址,让被调用函数也能访问到 调用者的变量。
    0 码力 | 128 页 | 2.95 MB | 1 年前
    3
  • ppt文档 C++高性能并行编程与优化 - 课件 - Zeno 中的现代 C++ 最佳实践

    • 这样之后如果有一个任务是要基于 eatFood 做文章,比如要重复 eatFood 两遍。 • 就可以封装到一个函数 eatTwice 里,这个函数只需接受他们共同的基类 IObject 作为参数,然后调 用 eatFood 这个虚函数来做事(而不是直接操作具体的猫和狗本身)。 • 这样只需要写一遍 eatTwice ,就可以对猫和狗都适用,实现代码的复用( dont-repeat-yourself 另一种方法是定义一个 IObjectClone 模板 类。其模板参数是他的派生类 Derived 。 • 然后在这个 IObjectClone 里实现 clone 即可。那为什么需要派生类作为模板参数 ? • 因为 shared_ptr 的深拷贝需要知道对象具 体的类型。注意这里不仅 make_shared 的参数有 Derived , this 指针(原本是 IObjectClone (Curiously Recurring Template Pattern / 奇异递归模板模 式 ) • 形如 struct Derived : Base {}; • 基类模板参数包含派生类型的,这种就是传说中的 CRTP 。包含派生类型是为了能调用派 生类的某些函数(我们这个例子中是拷贝构造函数)。 • 我们的目的是让基类能调用派生类的函数,其实本来是可以通过虚函数的,但是:
    0 码力 | 54 页 | 3.94 MB | 1 年前
    3
共 27 条
  • 1
  • 2
  • 3
前往
页
相关搜索词
C++高性性能高性能并行编程优化课件03现代教程高速上手11141720深入深入浅出MFC130215050812
IT文库
关于我们 文库协议 联系我们 意见反馈 免责声明
本站文档数据由用户上传或本站整理自互联网,不以营利为目的,供所有人免费下载和学习使用。如侵犯您的权益,请联系我们进行删除。
IT文库 ©1024 - 2025 | 站点地图
Powered By MOREDOC AI v3.3.0-beta.70
  • 关注我们的公众号【刻舟求荐】,给您不一样的精彩
    关注我们的公众号【刻舟求荐】,给您不一样的精彩