c++ primer 学习笔记13--模板
2015-04-22 12:12
148 查看
书本583页:16.6接受一个数组实参的标准库函数begin和end是如何工作的
16.7编写一个constexpr模板,返回给定数组的大小
template<typename T,size_t N> const T* my_begin(const T(&a) ) { return &a[0]; } template <typename T,size_t N> const T* my_end(const T(&a) ) { return &a[0] + N; }
16.7编写一个constexpr模板,返回给定数组的大小
#include <iostream> #include <string> using namespace std; //template<typename T, size_t N> constexpr int arr_size(const T(&a) ) C++11还没有完全支持 template<typename T, size_t N> int arr_size(const T(&a) ) { return N; } template<typename T, size_t N> void print(const T(&a) ) { for (auto i = 0; i < arr_size(a); i++) cout << a[i] << " "; cout << endl; } int main() { int a[6] = { 0, 2, 4, 6, 8, 10 }; string vs[3] = { "Hello", "World", "!" }; print(a); print(vs); return 0; }16.19 编写函数,接受一个容器的引用,打印容器的元素。使用容器的size_type和size成员来控制打印元素的循环
#include <iostream> #include <string> #include <vector> using namespace std; template<typename C> void print(const C &c) { for (typename C::size_type i = 0; i < c.size(); ++i) cout << c.at(i) << " "; cout << endl; } int main() { string s = "Hello!"; print(s); vector<int>v1 = { 0, 2, 4, 6, 8 }; print(v1); return 0; }
相关文章推荐
- 【C++ Primer】【学习笔记】【第十六章】模板与泛型编程之一:模板定义
- C++ Primer 学习笔记_76_模板与泛型编程 -模板定义[续]
- C++ Primer 学习笔记_77_模板与泛型编程 -实例化
- C++ Primer 学习笔记_76_模板和泛型编程 --模板定义[继续]
- C++ Primer 学习笔记_78_模板与泛型编程 -实例化[续]
- C++ Primer 学习笔记_79_模板与泛型编程 -模板编译模型
- C++ Primer复习和学习笔记 第十六章 模板与泛型编程
- C++ Primer 学习笔记_80_模板与泛型编程 -类模板成员
- C++ Primer 学习笔记_81_模板与泛型编程 -类模板成员[续一]
- C++ Primer 学习笔记_82_模板与泛型编程 -类模板成员[续二]
- C++ Primer 学习笔记_83_模板与泛型编程 -一个泛型句柄类
- C++ Primer 学习笔记_84_模板与泛型编程 -模板特化
- C++ Primer 学习笔记_76_模板与泛型编程 --模板定义[续]
- C++ Primer 学习笔记_84_模板与泛型编程 --模板特化
- C++ Primer 学习笔记_85_模板与泛型编程 -模板特化[续]
- C++ Primer 学习笔记_77_模板与泛型编程 --实例化
- C++ primer 模版学习笔记-在模板定义内部指定类型
- C++ Primer 学习笔记_83_模板与泛型编程 --一个泛型句柄类
- C++ Primer 学习笔记_79_模板与泛型编程 --模板编译模型
- C++ Primer 学习笔记_86_模板与泛型编程 -满载与函数模板