码迷,mamicode.com
首页 > 其他好文 > 详细

第十六章 模板与泛型编程

时间:2017-11-04 16:20:45      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:name   ace   std   ret   nbsp   知识   clu   amp   tip   

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

第十六章 模板与泛型编程

标签:name   ace   std   ret   nbsp   知识   clu   amp   tip   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!