C++ Primer(第5版) 练习 6.47
练习 6.47 改写6.3.2节(第205页)练习中使用递归输出vector内容的程序,使其有条件地输出与执行过程有关的信息。例如,每次调用时输出vector对象的大小。分别在打开和关闭调试器的情况下编译并执行这个程序。
环境:Linux Ubuntu(云服务器)
工具:vim
代码块
定义了NDEBUG
/*************************************************************************
> File Name: ex6.47.cpp
> Author:
> Mail:
> Created Time: Tue 13 Feb 2024 09:36:06 PM CST
************************************************************************/
#include<iostream>
#include<vector>
#define NDEBUG
using namespace std;
void output(vector<int> arr, size_t n){
#ifndef NDEBUG
cout<<"arr size: "<<arr.size()<<endl;
#endif
if(n == 0){
return;
}
else{
output(arr, n - 1);
cout<<arr[n - 1]<<endl;
}
}
int main(){
vector<int> arr = {1, 2, 3, 4, 5};
output(arr, arr.size());
return 0;
}
运行结果显示如下
没有定义NDEBUG
/*************************************************************************
> File Name: ex6.47.cpp
> Author:
> Mail:
> Created Time: Tue 13 Feb 2024 09:36:06 PM CST
************************************************************************/
#include<iostream>
#include<vector>
using namespace std;
void output(vector<int> arr, size_t n){
#ifndef NDEBUG
cout<<"arr size: "<<arr.size()<<endl;
#endif
if(n == 0){
return;
}
else{
output(arr, n - 1);
cout<<arr[n - 1]<<endl;
}
}
int main(){
vector<int> arr = {1, 2, 3, 4, 5};
output(arr, arr.size());
return 0;
}