重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1 // chapter18.h 2 3 #ifndef LEARN_CPP_CHAPTER18_H 4 #define LEARN_CPP_CHAPTER18_H 5 6 #include7 #include 8 9 template 10 T average_list(std::initializer_list arr) { 11 T sum = 0; 12 int num = 0; 13 for (auto x = arr.begin(); x != arr.end(); ++ x, ++ num) 14 sum += *x; 15 return sum / num; 16 } 17 void ch18_1(); 18 void ch18_2(); 19 void ch18_3(); 20 void ch18_4(); 21 22 23 #endif //LEARN_CPP_CHAPTER18_H 24 25 26 // chapter18.cpp 27 28 #include "chapter18.h" 29 30 void ch18_1() { 31 using namespace std; 32 // list of double deduced from list contents 33 auto q = average_list({15.4, 10.7, 9.0}); 34 cout << q << endl; 35 // list of int deduced from list contents 36 cout << average_list({20, 30, 19, 17, 45, 38}) << endl; 37 // forced list of double 38 auto ad = average_list<double>({'A', 70, 65.33}); 39 cout << ad << endl; 40 } 41 42 void ch18_2() { 43 44 } 45 46 void ch18_3() { 47 48 } 49 50 void ch18_4() { 51 52 } 53 54 // 有空再写吧0o0