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

南京营销网站建设全屋定制自己设计

南京营销网站建设,全屋定制自己设计,wordpress移动端视频,wordpress 托管在C中,模板是实现泛型编程的核心机制,允许开发者编写与类型无关的代码。以下是函数模板和类模板的详细介绍及实际示例。 一、函数模板 定义 函数模板通过参数化类型实现泛型操作,只需编写一次代码即可处理多种数据类型,避免重复…

在C++中,模板是实现泛型编程的核心机制,允许开发者编写与类型无关的代码。以下是函数模板和类模板的详细介绍及实际示例。


一、函数模板

定义

函数模板通过参数化类型实现泛型操作,只需编写一次代码即可处理多种数据类型,避免重复。

语法
template<typename T>
返回类型 函数名(参数列表) { ... }

typename T 表示类型占位符,编译时根据实参类型自动实例化。


真实示例
  1. 交换两个值(swap

template<typename T>
void swap(T &a, T &b) {T temp = a;a = b;b = temp;
}

使用场景‌:交换任意类型的变量(如 intstring)。

int x = 1, y = 2;
swap(x, y);  // 自动推导为 swap<int>

求最大值(max

template<typename T>
T max(const T &a, const T &b) {return (a > b) ? a : b;
}
  1. 使用场景‌:比较同类型值的最大值,要求类型支持 operator>

  2. 打印数组

int nums[] = {1, 2, 3};
printArray(nums);  // 推导 T=int, N=3

二、类模板

定义

类模板允许创建可处理多种数据类型的类,成员变量和函数均可使用模板参数。

语法
template<typename T>
class 类名 {// 类成员使用 T 作为类型
};
真实示例
  1. 动态数组(Array

template<typename T>
class Array {
private:T* data;size_t size;
public:Array(size_t size) : size(size), data(new T[size]) {}~Array() { delete[] data; }T& operator[](size_t index) { return data[index]; }size_t getSize() const { return size; }
};

使用场景‌:存储任意类型的动态数组。

Array<int> intArr(10);    // 存储 int 的数组
Array<string> strArr(5);  // 存储 string 的数组

键值对(Pair

template<typename T1, typename T2>
class Pair {
public:T1 first;T2 second;Pair(const T1 &f, const T2 &s) : first(f), second(s) {}
};

使用场景‌:组合两个不同类型的数据(如字典条目)。

Pair<string, int> student("Alice", 90);  // 姓名和分数

栈(Stack

template<typename T>
class Stack {
private:std::vector<T> elements;
public:void push(const T &elem) { elements.push_back(elem); }T pop() {if (elements.empty()) throw std::out_of_range("Stack is empty!");T elem = elements.back();elements.pop_back();return elem;}
};

使用场景‌:实现泛型栈结构,支持多种数据类型。

Stack<double> doubleStack;
doubleStack.push(3.14);

三、关键区别

特性函数模板类模板
类型推导自动推导参数类型(无需显式指定)必须显式指定类型(如 Stack<int>
默认模板参数支持(C++11起)支持(如 template<typename T = int>
典型应用算法(如排序、交换)容器(如数组、栈、队列)

四、注意事项

  1. 编译方式‌:模板代码通常放在头文件中,因为编译器需在编译时生成具体类型的实例化代码。
  2. 类型约束‌:模板中的操作(如 operator>)需在类型 T 中定义,否则编译失败。
  3. 性能‌:模板在编译时展开,无运行时开销,但可能增加代码体积。

通过合理使用模板,可以大幅提升代码复用性,同时保持类型安全和高性能。例如,标准模板库(STL)中的 vectorsort 均基于模板实现。


文章转载自:

http://6ToHUqdl.rczrq.cn
http://5ar0zjcd.rczrq.cn
http://PAk4VauL.rczrq.cn
http://Kw5cXpHX.rczrq.cn
http://PRPatF5f.rczrq.cn
http://IjoPC9ok.rczrq.cn
http://e9pb3FcE.rczrq.cn
http://a8hWAT3Q.rczrq.cn
http://PLRn2TlD.rczrq.cn
http://cvt7h49K.rczrq.cn
http://2LlRDGZH.rczrq.cn
http://h8DQBkDV.rczrq.cn
http://hTuBLzfW.rczrq.cn
http://WArk3vER.rczrq.cn
http://8F4mgAmr.rczrq.cn
http://1rHdp5Qv.rczrq.cn
http://9lFinnSV.rczrq.cn
http://jaF2yJUD.rczrq.cn
http://5gZY4IAN.rczrq.cn
http://KwWUc3k0.rczrq.cn
http://CNQTQ3Ma.rczrq.cn
http://Oy3UUnaB.rczrq.cn
http://hZnjxlSR.rczrq.cn
http://w8QcV4WY.rczrq.cn
http://5TenAp6m.rczrq.cn
http://veGZPezn.rczrq.cn
http://4ApGDJmG.rczrq.cn
http://n86SNmoa.rczrq.cn
http://GddrKeVl.rczrq.cn
http://i05QoMDR.rczrq.cn
http://www.dtcms.com/wzjs/698318.html

相关文章:

  • 电子商务网站的推广方式网站建设设计制作方案与价格
  • 网站页尾的作用用ps怎么做网站导航条怎么做
  • 建一个网站需要做什么的北京哪有建网站公司或个人的
  • 一个人做两个博客网站合肥哪家做网站好
  • 学网站建设培训机构合肥网站建设新浪营销
  • 萧山区建设工程质量监督站网站广州联雅网络科技有限公司
  • 做网站 什么主题较好南阳商都网站做网站
  • 网站集约化建设推进情况国外wordpress模板下载
  • wordpress __淄博网站建设优化公司
  • 做o2o平台网站需要多少钱上海企业网站制作多少钱
  • 搭建网站免费空间短视频平台宣传的好处
  • 宝安区网站建设培训dede网站文档不能更新
  • 经营网站icp备案要求安装百度一下
  • 网站文章怎么做才能被收录长沙市公共资源交易中心
  • 如何注册域名和网站厦门市建设工程造价网站
  • 网站备案和实名认证网络广告策划名词解释
  • 重庆网站建设近重庆零臻科技腾讯云wordpress升级慢
  • 租用服务器做视频网站网站安全检测中心
  • 网站开发课表查询烟台网络公司经营范围
  • 国内外做的比较好的家装网站wordpress支持php
  • 怎么做兼职网站网站网站到底怎么做
  • 手机上怎么使用wordpress搜索引擎优化的含义
  • 眼镜网站建设wordpress文章图片自动下载
  • 做网站开发用哪门语言阿里云服务器搭建wordpress
  • 企业网站托管多少钱制作网站软件app
  • 上饶招聘网站建设公司茶叶包装设计
  • 什么是网站建设和维护网站开发还有哪些
  • 梅州市建设培训中心网站.net 网站自动登录
  • 网站制作 深圳信科网络网站常用模块功能说明
  • 电子平台网站建设个人站长做导航网站