C++Primer第五版 6.5.3节练习
来源:互联网 发布:如何生成数据透视表 编辑:程序博客网 时间:2024/05/15 02:27
练习6.47:改写6.3.2节(第205页)练习中使用递归输出vector内容的程序,使其有条件地输出与执行过程有关的信息。例如,每次调用时输出vector对象的大小。分别在打开和关闭调试器的情况下编译并执行这个程序。
练习6.48:说明下面这个循环的含义,它对assert的使用合理吗?
string s;while (cin >> s && s != sought) {} //空函数体assert(cin);
答:不合理,当不再输入,或者s = sought时,此时cin为空,表达式求值为假,断言实现,输出错误信息,并退出程序。
练习6.47
/**练习6.47 *2015/6/25*问题描述:练习6.47:改写6.3.2节(第205页)练习中使用递归输出vector内容的程序,使其有条件地输出与执行过程有关的信息。例如,每次调用时输出vector对象的大小。分别在打开和关闭调试器的情况下编译并执行这个程序。*功能:递归改写 *作者:Nick Feng *邮箱:nickgreen23@163.com * */#include <iostream>#include <vector>using namespace std;void print(vector<string> vec, vector<string>::size_type n) // { if (n != vec.size()-1) print(vec,n+1); cout << vec[n] <<" "; }void print_debug(vector<string> vec, vector<string>::size_type n) //关闭调试状态 { #ifndef NDEBUG cerr << __func__ << ": size is " << vec.size() << endl; #endif if (n != vec.size()-1) cout << vec[n] <<" "; print(vec,n+1); }void print_debug_2(vector<string> vec, vector<string>::size_type n)//打开调试状态 { cerr << __func__ << ": size is " << vec.size() << endl; if (n != vec.size()-1) cout << vec[n] <<" "; print(vec,n+1); }int main(){ vector<string> vec; string s; while (cin >> s) vec.push_back(s); vector<string>::size_type n = 0; print(vec,n); cout << endl; print_debug(vec,n); cout << endl; print_debug_2(vec,n); return 0;}
0 0
- C++Primer第五版 6.5.3节练习
- C++Primer 第五版 1.1节练习
- C++Primer第五版 1.3节练习
- C++Primer第五版 1.6节练习
- C++Primer第五版 2.4节练习
- C++Primer第五版 3.1节练习
- C++Primer第五版 4.2节练习
- C++Primer第五版 4.3节练习
- C++Primer第五版 4.4节练习
- C++Primer第五版 4.6节练习
- C++Primer第五版 4.7节练习
- C++Primer第五版 4.8节练习
- C++Primer第五版 4.9节练习
- C++Primer第五版 4.5节练习
- C++Primer第五版 5.1节练习
- C++Primer第五版 5.2节练习
- C++Primer第五版 6.1节练习
- C++Primer第五版 6.4节练习
- 数据结构例程——表达式求值(用栈结构)
- jvm理解
- (1)初识HTML5
- 分析一次安装后EM启动遇到的怪问题
- 个税计算代码
- C++Primer第五版 6.5.3节练习
- android学习 关于contentprovider
- Android HandlerThread 源码分析
- vs2010创建和使用动态链接库(dll)
- shodan搜索引擎介绍
- Oracle中三种循环(For、While、Loop)
- 让Windows下的Tomcat将控制台信息记录到日志
- 优先级搜索
- ubuntu使用pptpd搭建vpn