C++数据结构--泛型编程
2023-09-14 09:05:11 时间
1、泛型编程的概念
泛型的定义主要有以下两种:
1.在程序编码中一些包含类型参数的类型,也就是说泛型的参数只可以代表类,不能代表个别对象。(这是当今较常见的定义)
2.在程序编码中一些包含参数的类。其参数可以代表类或对象等等。(人们大多把这称作模板)不论使用哪个定义,泛型的参数在真正使用泛型时都必须作出指明。
一些强类型编程语言支持泛型,其主要目的是加强类型安全及减少类转换的次数,但一些支持泛型的编程语言只能达到部分目的。
泛型编程是一种不考虑具体数据类型的编程方式,可以由下面的Swap函数来进行了解
void Swap(T& a,T& b)
{
T t=a;
a=b;
b=t;
}
在这个例子中,Swap泛型的写法中的T不是一个具体的数据类型,而是泛指任意的数据类型
2、C++中的函数模板
一种特殊的函数可用不同的类型进行调用,看起来和普通的函数很相似,区别是类型可被参数化
template<typename T>
void Swap(T& a,T& b)
{
T t=a;
a=b;
b=t;
}
函数模板的语法规则:
template关键字用于声明开始进行泛型编程
typename关键字用于声明泛指类型
函数模板使用有自动类型推导使用和具体类型调用两种
int a=0;
int b=1;
Swap(a,b);//自动推导
float c=2;
float d=3;
Swap<float>(c,d);//显示调用
3、C++中的类模板
C++中的类模板以相同的方式处理不同的类型,在类声明前使用template进行标识
<typename T>用于说明类中使用的泛指类型T
template <typename T>
class Book
{
public:
T Bo(T a,T b);
};
类模板的应用
1.只能显示指定具体类型,无法自动推导
2.使用具体类型<type>定义对象
Book<int>book1;
Book<string>book2;
Book<char>book3;
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QSS,OpenCV,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
相关文章
- 【C/C++学院】(29)网络编程--实现跨平台传输文件(TCP版)
- 鸡啄米:C++编程之十三学习之类与对象,类的声明,成员的访问控制
- C++多线程编程笔记
- 基于c++、opencv、cuda、Visual Studio编程
- Matlab与C++混合编程 编写独立外部应用程序时出现“无法定位序数3906于动态链接库LIBEAY32.dll上”错误
- [转] Matlab与C++混合编程,添加OpenCV库
- 经验贴-基于Vc++开发IIS7以及IIS6的万能筛选器
- paip.c++ qt 网页爬虫 的 网络编程 总结
- C++面向对象的Qt编程
- Qt QML与C++混合编程
- 【华为OD机试 2023】模拟商场优惠打折(C++ Java JavaScript Python)
- 【华为OD机试 2023】 处理器问题(C++ Java JavaScript Python)
- C++之CreateProcess
- C++编程思想重点笔记(上)
- c++ 以三个元素为组合枚举vector
- C/C++为什么要引入内联函数
- Microsoft Visual C++ Runtime Library Runtime Error的解决的方法
- C++ cast static_cast、dynamic_cast、const_cast和reinterpret_cast(四种类型转换运算符) 强烈推荐
- c++ 纯虚函数和抽象类那些事(二)实现抽象类
- 基础知识点-----C++使用固定命名空间
- 第十三届蓝桥杯B组C++(试题B:顺子日期)
- C++编程经验(4):不要在构造函数和析构函数中使用虚函数
- C++编程经验(1):确保对象使用前被初始化
- C、C++编程入口,常见的编程题
- C++ TCP 服务器客户端Socket编程