之前用的一直是clion 但是经过反复调整,发现始终查看不了vector里面的数值(只有指针地址),改用常用的vscode后调试成功
- 安装
- 安装vscode 以及vscode中的扩展安装
c/c++,c/c++ extension pack,cmake,cmake tools,code runner,codeLLDB - 打开一个cpp文件,点击运行旁边的小箭头,选择run code,出现调试配置,选择g+±13生成活动文件,会生成tasks.json
- 点击调试,选择debug(lldb),会生成launch.json
- 扩展中找到code runner点击设置,找到run in terminal,在whether to run code in integrated terminal前打勾,(从而解决cpp运行和调试中无法在终端进行输入的问题)
-
运行测试
打开一个cpp文件,点击运行旁边的小箭头,选择run code -
debug调试测试
带vector的测试代码如下:
#include<iostream>
#include<stdio.h>
#include<iostream>
#include<map>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(pair<int,double> a,pair<int,double> b){
return a.first>b.first;
}
int main(){
map<int,double> poly;
map<int,double> ans_poly;
int m,n,ex;
double co;
cin>>n;
for(int i=0;i<n;i++){
cin>>ex>>co;
poly[ex]=co;
}
cin>>m;
for(int i=0;i<m;i++){
cin>>ex>>co;
for(auto p=poly.begin();p!=poly.end();p++ ){
int new_ex=(*p).first+ex;
ans_poly[new_ex]+=((*p).second*co);
//cout<<(*p).second<<" "<<co<<" "<<(*p).second*co<<endl;
}
}
vector<pair<int,double> > ans(ans_poly.begin(),ans_poly.end());
sort(ans.begin(),ans.end(),cmp);
int cnt=0;
for(auto it=ans.begin();it!=ans.end();it++){
if((*it).second)
cnt++;
}
cout<<cnt;
for(auto it=ans.begin();it!=ans.end();it++){
if((*it).second)
printf(" %d %.1lf",(*it).first,(*it).second);
}
return 0;
}
输入:
2 1 2.4 0 3.2
2 2 1.5 1 0.5
输出:(自行验证是否正确)
3 3 3.6 2 6.0 1 1.6
点击运行和调试,选择debug,在第41行前打红色断点,点击绿色箭头开始调试,
同样的在终端输入上述的输入参数,
可以看到vector中的值了