欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 科技 > IT业 > 每日学习笔记004:(C++)标准模板

每日学习笔记004:(C++)标准模板

2025/5/20 8:00:19 来源:https://blog.csdn.net/weixin_43111445/article/details/143918774  浏览:    关键词:每日学习笔记004:(C++)标准模板

每日学习笔记004:(C++)标准模板

在C++中,标准模板(template)是一种非常强大的特性。它允许程序员编写泛型代码,也就是能够处理多种不同数据类型的代码,而不需要为每种数据类型都重写相同的逻辑。

一、模板的概念

模板就像是一个代码蓝图,可以根据不同的类型参数生成特定类型的代码。这大大提高了代码的复用性。例如,我们可以创建一个函数模板,它可以接受不同类型的参数并执行相同的操作。

二、函数模板示例

以下是一个简单的函数模板示例,用于交换两个变量的值:

template <typename T>
void swap(T& a, T& b) {T temp = a;a = b;b = temp;
}int main() {int num1 = 5;int num2 = 10;swap(num1, num2);// 这里可以看到,我们使用了函数模板swap,它可以处理int类型的数据double d1 = 3.14;double d2 = 2.71;swap(d1, d2);// 同样,这个函数模板也能处理double类型的数据return 0;
}

在这个示例中,template 是模板头部,其中T是一个类型参数。这个函数模板swap可以接受任何类型T的参数,只要该类型支持赋值操作。

三、类模板示例

除了函数模板,C++中还有类模板。下面是一个简单的类模板示例,用于创建一个动态大小的数组类:

#include <iostream>
#include <string>
using namespace std;
template <typename T>
class DynamicArray {
private:T* data;
public:int size;DynamicArray(int s) : size(s) {data = new T[size];}~DynamicArray() {delete[] data;}T& operator[](int index) {return data[index];}
};template <typename T>
void showArray(DynamicArray<T>& arr) {for (int i = 0; i < arr.size; ++i) {cout << arr[i] << " ";}cout << endl;
}int main() {DynamicArray<int> intArray(5);// 创建一个存储int类型的动态数组,大小为5for (int i = 0; i < 5; ++i) {intArray[i] = i;}showArray(intArray);DynamicArray<double> doubleArray(3);// 创建一个存储double类型的动态数组,大小为3doubleArray[0] = 1.2;doubleArray[1] = 3.4;doubleArray[2] = 5.6;showArray(doubleArray);DynamicArray<string> strArray(3);strArray[0] = "Hello";strArray[1] = "Luke";strArray[2] = "!";showArray(strArray);return 0;
}
}

在这个类模板DynamicArray中,T同样是类型参数。这个类可以根据不同的类型T创建出不同类型的动态数组类,而不需要为每种类型都单独编写一个类。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词