第十六章 模板与泛型编程

Posted GGBeng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十六章 模板与泛型编程相关的知识,希望对你有一定的参考价值。

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

以上是关于第十六章 模板与泛型编程的主要内容,如果未能解决你的问题,请参考以下文章

模板与泛型编程

c++模板与泛型编程

模板与泛型编程

模板与泛型编程——定义模板

模板与泛型编程1(函数模板)

C++Primer 第十六章