C++primer 16.1.3节练习

练习16.17

原则上并没有什么特别的差别,只是在我们希望通知编译器一个名字表示类型时,必须使用关键字typename,而不能使用class。

练习16.18

a)template <typename T, typename U, typename V> void f1(T, U, V);
b)template <typename T> T f2(T&);
c)template <typename T> inline T foo(T, unsigned int *);
d)template <typename T> T f4(T, T);
e)合法

练习16.19

 1 #include <iostream>
 2 #include <string>
 3 #include <utility>
 4 #include <memory>
 5 #include <vector>
 6 #include <list>
 7
 8 using namespace std;
 9
10 template <typename T>void print(const T& t);
11
12 int main()
13 {
14     vector<string> v1{ "ad", "ad" };
15     print(v1);
16     system("pause");
17     return 0;
18 }
19
20 template<typename T>
21 void print(const T & t)
22 {
23     for (size_t i = 0; i != t.size(); ++i)
24         cout << t[i] << endl;
25 }

练习19.20

 1 #include <iostream>
 2 #include <string>
 3 #include <utility>
 4 #include <memory>
 5 #include <vector>
 6 #include <list>
 7
 8 using namespace std;
 9
10 template <typename T>void print(const T& t);
11
12 int main()
13 {
14     vector<string> v1{ "ad", "ad" };
15     print(v1);
16     system("pause");
17     return 0;
18 }
19
20 template<typename T>
21 void print(const T & t)
22 {
23     for (auto p = t.begin(); p != t.end(); ++p)
24         cout << *p << endl;
25 }
时间: 2024-08-18 00:46:16

C++primer 16.1.3节练习的相关文章

Egret入门学习日记 --- 第二十五篇(书中 9.16~9.17 节 内容)

第二十五篇(书中 9.16~9.17 节 内容) 对于昨天的关于 List 组件使用的问题,我打算到书中提到List之后,再回头补充. 还有就是 Scroller 的 TileLayout 布局方式,也要去研究一下. 好了,开始按照书中内容一步一步走. 开始 9.16节. 重点: 1.设定TabBar皮肤. 2.设置TabBar布局. 操作: 1.设定TabBar皮肤. 第一步,准备素材! 第二步,创建 exml 文件! 第三步,拖入组件!约束大小! 第四步,增加两个状态 down 和 up.

C++primer 15.7.3节练习

练习15.26 写的时候不小心写到了派生类Disc_quote,其实是一样的,主要明白原理即可 1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector> 6 7 using namespace std; 8 9 class Quote { 10 public: 11 Quote() : bookNo(

C++primer 15.2.2节练习

练习15.4 a)错误,一个类不能派生它本身 b)正确,Derived从他的基类Base派生,且规定派生类从基类继承的数据成员对于派生类的用户是不可见. c)错误,派生类的声明与其他类相差不大,声明中包含类名但是不包含他的派生列表: 练习15.5 1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector>

C++primer 14.2.1节练习

练习14.6 1 #include <iostream> 2 #include <string> 3 #include <memory> 4 #include <vector> 5 #include <algorithm> 6 #include <numeric> 7 8 using namespace std; 9 10 class Sales_data { 11 friend istream& operator >&

C++primer 15.7.4节练习

练习15.27 1 #include <iostream> 2 #include <string> 3 #include <utility> 4 #include <memory> 5 #include <vector> 6 7 using namespace std; 8 9 class Quote { 10 public: 11 Quote() : bookNo(""), price(0.0) { cout <<

C++ Primer 6.5.3节练习

练习 6.47: 改写6.3.2节(第205页)练习中使用递归输出vector内容的程序,使其有条件地输出与执行过程有关的信息.例如,每次调用时输出vector对象的大小.分别在打开和关闭调试器的情况下编译并执行这个程序. ///这一题需要在前面输出vector内容的程序中,添加新的功能---->有条件地输出与执行过程有关的信息. 为了简便解答该题,我们采用vector引用,vector的类型是string型,在过程中不改变容器大小. 经过测试得到一个现象,编译器将会按照 #define DEB

C++primer 11.3.5节练习

练习11.27 对于multimap来说统计关键字出现的次数用count会很好,而对于map来说寻找关键字来说更加妥当: 练习11.28 1 #include <iostream> 2 #include <string> 3 #include <set> 4 #include <map> 5 #include <algorithm> 6 #include <vector> 7 #include <algorithm> 8

C++primer 11.2.3节练习

练习11.12 1 #include<iostream> 2 #include<string> 3 #include <iostream> 4 #include <vector> 5 #include <algorithm> 6 #include <list> 7 #include <functional> 8 #include <iterator> 9 #include <map> 10 #inc

C++primer 7.5.3节练习

练习7.43 网上的答案 1 #include <iostream> 2 using std::cout; 3 using std::endl; 4 5 class Nodefault 6 { 7 public: 8 Nodefault(int i) 9 { 10 val = i; 11 } 12 int val; 13 }; 14 15 class C 16 { 17 public: 18 Nodefault nd; 19 C(int i = 0) : nd(i) { } 20 }; 21