news 2026/6/23 21:43:49

C++提高编程学习(更新中....)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++提高编程学习(更新中....)

1 模板

1.1 模板的概念

模板是一种通用的编程工具,允许使用虚拟类型(泛型)定义函数或类,从而实现对不同数据类型的复用。通过模板编写的代码可以自动适应多种数据类型,减少重复代码。

模板的特点

  • 通用性:一套逻辑可适用于多种数据类型(如intfloat、自定义类等)。
  • 类型安全:编译时进行类型检查,避免运行时错误。
  • 编译时生成代码:编译器根据实际调用类型生成对应的具体函数或类。

1.2 函数模板

1.2.1 函数模板语法

作用:定义一个通用函数,其返回值类型和参数类型可用虚拟类型(如T)表示,调用时根据实际类型实例化。

语法

template <typename T> //template<class T> T functionName(T param1, T param2) { // 函数体 }

解释

  • template <typename T>声明模板,T为占位符类型。
  • 函数参数、返回值或局部变量均可使用T

示例代码

#include <iostream> using namespace std; template <typename T> T maxValue(T a, T b) { return a > b ? a : b; } int main() { // 1. 自动类型推导 cout << maxValue(3, 5) << endl; // 推导为 int cout << maxValue(3.14, 2.71) << endl; // 推导为 double // 2. 显式指定类型 cout << maxValue<double>(3, 2.71) << endl; // 强制为 double return 0; }

1.2.2 函数模板注意事项

  1. 自动类型推导的一致性
    推导的多个参数类型必须一致,否则编译失败。

    // 错误示例:a 是 int,b 是 double cout << maxValue(3, 2.71) << endl; // 编译错误
  2. 必须明确数据类型
    模板类型T必须能被编译器推断或显式指定。

    template <typename T> void printData(T data) { cout << data << endl; } int main() { printData(10); // 正确:推导为 int printData<int>(10); // 正确:显式指定 printData(); // 错误:无法推断 T }
  3. 特殊处理场景
    若函数模板与普通函数同名,优先调用普通函数(除非显式指定模板)。

    void print(int val) { cout << "普通函数" << endl; } template <typename T> void print(T val) { cout << "模板函数" << endl; } int main() { print(10); // 调用普通函数 print<int>(10); // 调用模板函数 }

扩展示例

// 多类型模板参数 template <typename T1, typename T2> void printPair(T1 a, T2 b) { cout << a << ", " << b << endl; } int main() { printPair(1, "Hello"); // 输出: 1, Hello }

1.2.3 函数模板案例

1.2.4 普通函数与函数模板的区别

1.2.5 普通函数与函数模板的调用规则

1.2.6 模板的局限性

1.3 类模板

2 STL初识

3 STL-常用容器

4 STL-函数对象

5 STL-常用算法

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 18:14:07

MobaXterm高效运维

MobaXterm简介与核心优势定义MobaXterm作为多功能远程管理工具的基本功能对比传统工具&#xff08;如PuTTY、Xshell&#xff09;突出其集成化优势支持协议与特性&#xff1a;SSH/RDP/VNC/X11转发/文件传输环境配置与基础操作便携版与安装版的选择策略会话管理&#xff1a;保存常…

作者头像 李华
网站建设 2026/6/23 14:01:12

Wan2.2-T2V-A14B + 高性能GPU:构建专属AI视频工厂

构建专属AI视频工厂&#xff1a;Wan2.2-T2V-A14B 与高性能GPU的深度协同 在数字内容爆炸式增长的今天&#xff0c;传统视频制作正面临前所未有的挑战——创意迭代慢、成本高、人力密集。一条广告短片从脚本到成片动辄数周&#xff0c;而市场对“个性化”“即时化”内容的需求却…

作者头像 李华
网站建设 2026/6/23 19:49:12

3分钟掌握B站视频下载:哔哩下载姬终极使用指南

还在为无法离线观看B站精彩内容而烦恼吗&#xff1f;哔哩下载姬这款开源神器让你轻松搞定B站视频下载&#xff0c;支持从流畅到8K超清的各种画质选择&#xff0c;是B站用户必备的视频下载工具。无论你想收藏UP主的系列作品&#xff0c;还是备份个人珍贵内容&#xff0c;这款工具…

作者头像 李华
网站建设 2026/6/23 11:51:33

BetterGI:原神AI自动化辅助工具终极指南

BetterGI&#xff1a;原神AI自动化辅助工具终极指南 【免费下载链接】better-genshin-impact &#x1f368;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动派遣 | 一键强化 - UI Automation Testing Tools For Genshin Impa…

作者头像 李华
网站建设 2026/6/23 7:37:21

MoE架构加持的Wan2.2-T2V-A14B,如何提升动态细节表现力?

MoE架构加持的Wan2.2-T2V-A14B&#xff0c;如何提升动态细节表现力&#xff1f; 在影视级视觉内容日益依赖AI生成的今天&#xff0c;一个核心挑战始终悬而未决&#xff1a;如何让模型既具备理解复杂动作语义的能力&#xff0c;又能以高分辨率、长时间序列的方式自然呈现动态细节…

作者头像 李华