首页 > 其他 > 详细

第十六章 模板与泛型编程

时间:2017-11-04 15:47:39      阅读:268      评论:0      收藏:0      [点我收藏+]

16.1

知识点:当我们调用一个模板函数时,即向一个模板传递实参,编译器用此函数实参来推断模板实参,并将该模板实参(即实参的类型)绑定到模板参数(即T)。

实例化:编译器用模板实参代替对应的模板参数来创建出一个新“实例”。譬如用int代替T,创建出一个新函数实例。

 

16.2

template <typename T>
bool cmp(const T &a, const T &b)
{
	return a < b;
}

int main()
{
	cout << boolalpha << cmp(‘a‘, ‘b‘) << " " << cmp(3, 2) << endl;
	return 0; 
}

  

16.4

#include <iostream>
#include <vector>
#include <list>
 
using namespace std;

template <typename T, typename V>
bool find1(const T &beg, const T &end, const V &val)
{
	T it = beg;
	while (it != end) {
		if (*it == val)
			return true;
		++it;
	}
	return false;
}

int main()
{
	vector<int> vec{2, 1, 6, 4, 8, 7};
	list<string> lst{"pine", "cake", "fine", "kzw"};
	bool bl1 = find1(vec.begin(), vec.end(), 6);
	bool bl2 = find1(lst.begin(), lst.end(), "tiple");
	cout << boolalpha << bl1 << endl << bl2 << endl;;
	return 0; 
}

  

16.5

第十六章 模板与泛型编程

原文:http://www.cnblogs.com/xzxl/p/7783409.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!