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