当前位置: 首页 > wzjs >正文

揭阳网站定制青岛房产网上查询

揭阳网站定制,青岛房产网上查询,微信直接下载安装,合肥晨曦网站建设c 函数模板 文章目录 c 函数模板C 函数模板概念**函数模板**的作用: 函数模板语法示例:冒泡排序**代码解析****运行结果** 函数模板的优势小结 C 函数模板概念 函数模板是 C 中的一个泛型编程特性,它允许你为不同的类型编写一个通用的函数定…

c++ 函数模板

文章目录

  • c++ 函数模板
    • C++ 函数模板概念
      • **函数模板**的作用:
    • 函数模板语法
    • 示例:冒泡排序
      • **代码解析**
      • **运行结果**
    • 函数模板的优势
    • 小结

C++ 函数模板概念

函数模板是 C++ 中的一个泛型编程特性,它允许你为不同的类型编写一个通用的函数定义,这样你就可以使用相同的函数名和相似的实现,处理不同的数据类型。

函数模板的作用:

  • 在编写代码时不需要为每种数据类型编写单独的函数
  • 提高代码的重用性和灵活性

函数模板语法

template <typename T>
T function_name(T arg1, T arg2) {// 函数实现return arg1 + arg2;
}
  • template <typename T>:定义一个类型参数 T,这个 T 可以是任意类型。
  • T function_name(T arg1, T arg2):函数的返回类型和参数类型都是 T,也就是根据模板类型来决定。

示例:冒泡排序

#include <iostream>
#include <array>// 冒泡排序模板函数
template <typename T, size_t N>
void bubbleSort(std::array<T, N>& arr) {for (size_t i = 0; i < N - 1; ++i) {// 每次循环“冒泡”到最后的元素已经是最大值,所以减少一次比较for (size_t j = 0; j < N - i - 1; ++j) {if (arr[j] > arr[j + 1]) {// 交换两个元素std::swap(arr[j], arr[j + 1]);}}}
}// 打印数组的模板函数
template <typename T, size_t N>
void printArray(const std::array<T, N>& arr) {for (const auto& element : arr) {std::cout << element << " ";}std::cout << "\n";
}int main() {// 示例 1: 对整数数组排序std::array<int, 5> intArray = {64, 34, 25, 12, 22};std::cout << "Before sorting: ";printArray(intArray);bubbleSort(intArray);std::cout << "After sorting: ";printArray(intArray);// 示例 2: 对浮点数数组排序std::array<float, 5> floatArray = {64.5, 34.2, 25.1, 12.8, 22.0};std::cout << "Before sorting: ";printArray(floatArray);bubbleSort(floatArray);std::cout << "After sorting: ";printArray(floatArray);return 0;
}

代码解析

  1. 模板定义

    • 使用 template<typename T, size_t N> 定义一个泛型模板,允许冒泡排序函数适用于任何类型(如 intfloatdouble 等)和固定大小的数组。
  2. std::array 的使用

    • 使用 std::array 来处理固定大小的数组,模板参数 T 表示元素类型,N 表示数组大小。
  3. 冒泡排序逻辑

    • 使用两层嵌套循环逐步将最大值“冒泡”到数组末尾,每次循环比较相邻元素并交换它们。
  4. std::swap 的使用

    • 使用 STL 提供的 std::swap 函数交换两个元素。
  5. 打印函数模板

    • printArray 函数是另一个模板函数,用于打印数组内容,与 bubbleSort 模板共享相同的类型定义。

运行结果

示例代码会输出排序前和排序后的数组内容:

Before sorting: 64 34 25 12 22 
After sorting: 12 22 25 34 64 
Before sorting: 64.5 34.2 25.1 12.8 22 
After sorting: 12.8 22 25.1 34.2 64.5 

函数模板的优势

优势说明
类型通用允许函数处理多种类型,避免重载和重复编写函数
编译期检查模板会在编译期进行类型检查,避免运行时错误
代码简洁一个函数模板即可处理不同类型,减少冗余代码

小结

  • template <typename T> 定义了一个类型参数 T。
  • 可以用相同的函数模板处理不同的数据类型。
  • C++ 会在调用时自动推导出类型,或者你可以显式指定类型参数。


文章转载自:

http://9u6WFdu6.ggfdq.cn
http://kjAAlDV5.ggfdq.cn
http://Q2ACTAqM.ggfdq.cn
http://6ff7Asl5.ggfdq.cn
http://eKpDgtbj.ggfdq.cn
http://fB1mvt2i.ggfdq.cn
http://VbMruZGM.ggfdq.cn
http://6IlxFMhu.ggfdq.cn
http://aRG1cWIF.ggfdq.cn
http://c1Wz8jyJ.ggfdq.cn
http://UuwQDvSj.ggfdq.cn
http://Ho8PvvV0.ggfdq.cn
http://imf42tEr.ggfdq.cn
http://Vxf9r0Ki.ggfdq.cn
http://Do2ALLtY.ggfdq.cn
http://bupI9dhr.ggfdq.cn
http://KVZBfeBK.ggfdq.cn
http://xtpDleek.ggfdq.cn
http://XWxkdHj6.ggfdq.cn
http://T8JLS0rq.ggfdq.cn
http://owCzZDDp.ggfdq.cn
http://oU6rnRTg.ggfdq.cn
http://AvNREqzQ.ggfdq.cn
http://S4plzwoX.ggfdq.cn
http://rWFoYO58.ggfdq.cn
http://1dWSiYHN.ggfdq.cn
http://AE1Kfl0D.ggfdq.cn
http://fJb0BKXT.ggfdq.cn
http://tPJM20gQ.ggfdq.cn
http://uFEVFFf0.ggfdq.cn
http://www.dtcms.com/wzjs/731599.html

相关文章:

  • 汽车网站怎么做常见cms网站源码下载
  • 品牌便宜网站建设wordpress4.9.4
  • 大连建设银行招聘网站wordpress那个主题收录好
  • 重庆做网站建设企业如何wix 做 网站
  • 东莞朝阳企讯网做的网站给客户做网站需要付法律责任吗
  • 自己网站建设要维护制作网站的公司叫什么
  • 湖南株洲网广州百度seo
  • 网站文章百度不收录网页制作软件s
  • 有哪些网站可以做电子邀请函深圳全网建站公司推荐
  • 网站好玩新功能台州市城乡建设规划局网站
  • 网站网页设计公司软文推广媒体
  • 套模板网站网站制作算什么费用
  • js判断是手机还是电脑访问网站电商网站开发的背景
  • 中国建设工程造价管理协会网站查询中文wordpress模板
  • 绵阳市建设银行网站有哪些做兼职的网站
  • 个人网站首页怎么做厦门营销网站建设
  • 免费开发网站大全网络销售怎么才能找到客户
  • 比格设计网站官网凉山网站开发
  • 白云品牌型网站建设建设银行网站的支付流程
  • 做外贸网站报价长春seo外包平台
  • 做网站的软件帝国做免费网站推广开头语
  • 网站建设教程照片seo sem推广
  • 建设银行咸阳交费网站wordpress登录后才能下载文件
  • 自适应网站建设推荐营销推广app
  • 毕业设计网站最容易做什莫类型免费的推广软件有哪些
  • 株洲seo优化推荐网站排名优化工薪待遇
  • 广州专业的做网站公司网站模板版权
  • 怎么查看网站虚拟空间wordpress 曲线表
  • 新农村建设投诉网站优化排名案例
  • 网站做qq链接代码支付网站备案