news 2026/5/11 22:09:16

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/5/8 5:39:57

编程范式悄然转舵:从“规则编织”到“模型生长”​

我们正站在编程史的拐点——从“基于规则编程”的精密齿轮时代&#xff0c;迈入“基于基础模型编程”的智能涌现纪元。过去&#xff0c;我们用代码刻写每一条逻辑边界&#xff0c;像搭积木般构建功能&#xff1b;如今&#xff0c;大模型成了“会学习的土壤”&#xff0c;高价值…

作者头像 李华
网站建设 2026/5/6 14:32:03

题目:二叉树的遍历

1. 题目描述给定一个非负二叉树&#xff0c;其节点以数组&#xff08;顺序存储/层序&#xff09;的形式给出。请分别求出该二叉树的前序遍历、中序遍历和后序遍历序列。2. 输入格式第一行&#xff1a;一个整数 N&#xff0c;表示节点的个数 (N < 100)。第二行&#xff1a;N …

作者头像 李华
网站建设 2026/5/10 20:33:43

四份 AI Agent 报告大比拼:为什么 AiPy 自研模型更懂行业?

最近 AI Agent 赛道热度飙升&#xff0c;不少朋友都在用工具生成行业报告做参考。今天我们拿三份用 AiPy 对接不同模型生成的报告做对比&#xff0c;看看它们各有什么特点&#xff0c;以及为什么 AiPy 自研模型的输出更值得关注。先看效果qwen:Claude:AiPy:Deepseek:先上核心对…

作者头像 李华
网站建设 2026/5/10 20:33:23

闲鱼自动化终极解决方案:5分钟实现高效运营管理

闲鱼自动化终极解决方案&#xff1a;5分钟实现高效运营管理 【免费下载链接】xianyu_automatize [iewoai]主要用于实现闲鱼真机自动化&#xff08;包括自动签到、自动擦亮、统计宝贝数据&#xff09; 项目地址: https://gitcode.com/gh_mirrors/xia/xianyu_automatize 还…

作者头像 李华