{
int a = 2, b = 5;
double m = 8.1, n = 3.2;
char c1 = ‘A’, c2 = ‘a’;
Swap(c1, c2);//自动识别类型
Swap(a, b);//自动识别类型
//C++库自带swap函数模板,直接用
swap(m,n);
cout << m << " " << n << endl;
cout << a << " " << b << endl;
cout << c1 << " " << c2 << endl;
return 0;
}
//用不同类型的参数使用函数模板时,称为函数模板的实例化。模板参数实例化分为:隐式实例化和显式实例
//化。
//1. 隐式实例化:让编译器根据实参推演模板参数的实际类型
template
T Add(const T& left, const T& right)
{
return left + right;
}
int main()
{
int a1 = 10, a2 = 20;
double d1 = 10.1, d2 = 20.2;
cout<<Add(a1, a2)<<endl;
cout << Add(d1, d2)<< endl;
//cout << Add(a1,d2) << endl;//错误
//注意:在模板中,编译器一般不会进行类型转换操作,因为一旦转化出问题,编译器就需要背黑锅
// 此时有两种处理方式:
//1. 用户自己来强制转化
cout << Add(a1,(int)d2) << endl;
cout << Add((double)a1, d2) << endl;
//2. 使用显式实例化,在函数名后的<>中指定模板参数的实际类型
cout <<Add (a1,d2) << endl;
cout << Add(a1, d2) << endl;
return 0;
}
//模板参数的匹配原则 完全匹配 > 函数模板 > 需要类型转换
// 专门处理int的加法函数(非函数模板类型)
int Add(int left, int right)
{
return left + right;
}
// 通用加法函数(函数模板类型)
template
T Add(T left, T right)
{
return left + right;
}
void Test()
{
Add(1, 2); // // 与非函数模板类型完全匹配,不需要函数模板实例化
Add(1, 2); // 因为使用了显式实例化,所以只能使用函数模板实例化
//两者都可以使用,因为非函数模板类型属于普通函数,普通函数可以隐式地进行自动类型转换
//但是如果有需要转换匹配的,它会优先选择实例化模板生成
Add(1.1, 2.3);//选择函数模板类型
}
struct TreeNode
{
//
};
//二.类模板
//普通类:类名就是类型
//类模板: 类名不是类型,类型是Stack
template
class Stack
{
public:
Stack(int capacity=4)
:_a(new T[acpacity])
,_top(0)
,_capacity(capacity)
{}
~Stack()
{
dalete[] _a;
_a = nullptr;
_top = _capacity = 0;
}
// 类里面声明,类外面定义
//注意:类模板中的成员函数若是放在类外定义时,需要加模板参数列表。
void Push(const T& x);
private:
T* _a;
int _top;
int _capacity;
};
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)
最后
针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。
上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)
[外链图片转存中…(img-F7Kn9OYq-1713412106744)]
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!