c++模板进阶

在这里插入图片描述

嗨喽大家好,时隔许久阿鑫又给大家带来了新的博客,模板进阶,下面让我们开始今天的学习吧!

模板进阶

1.非类型模板参数

2.模板的特化

3.模板的分离编译

1. 非类型模板参数

模板参数分为类型形参与非类型形参
类型形参即:出现在模板参数列表中,跟在class或者typename之类的参数类型名称。
非类型形参,就是用一个常量作为类(函数)模板的一个参数,在类(函数)模板中可将该参数当成常量来使用。

namespace bite
{
   
// 定义一个模板类型的静态数组
template<class T, size_t N = 10>
class array
{
   
public:
T& operator[](size_t index){
   return _array[index];}
const T& operator[](size_t index)const{
   return _array[index];}
size_t size()const{
   return _size;}
bool empty()const{
   return 0 == _size;}
private:
T _array[N];
size_t _size;
}}
int main()
{
   
	array<int, 10> aa1;
	int aa2[10];

	return 0;
}

注意:c语言中对静态数组的越界访问是一种抽查的方式

void PrintVector(const vector<int>& v)
{
   
	vector<int>::const_iterator it = v.begin();
	while (it != v.end())
	{
   
		cout << *it << endl;
		it++;
	}
	cout << endl;

}
template<class T>
void PrintVector(const vector<T>& v)
{
   
	typename vector<T>::const_iterator it = v.begin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值