最近做某绿题,在vscode上打,想debug调试,但是遇到了一个问题:
我在调试的时候想查看某个结构体vector中的一个值,我监视了那个值,在到了我设的一个断点,过了几秒,gdb闪退了,再试也是这样,而且我退回了c/c++ 1.5.1也不行,条件断点的条件里有结构体vector中的一个值也不行,是怎么回事?
代码:
#include<iostream>
#include<vector>
using namespace std;
struct p1144
{
int to,value;
};
vector<p1144>a[1000001];
int d[10000001],dis[1000001],mint[1000001],ans[1000001];
bool bz[1000001];
int main()
{
int n,m;
cin>>n>>m;
for(int i=1;i<=m;i++)
{
int x;
p1144 t1,t2;
cin>>x>>t1.to;
t1.value=1;
t2.to=x;
t2.value=1;
a[x].push_back(t1);
a[t1.to].push_back(t2);
}
cout<<a[4].size()<<endl;
int head=0,tail=1;
for(int i=1;i<=n;i++)
dis[i]=mint[i]=2147483647;
dis[1]=0;
mint[1]=0;
d[1]=1;
ans[1]=1;
while(head<tail)
{
head++;
bz[d[head]]=0;
int from=d[head];
for(int i=0;i<a[from].size();i++)
{
if(dis[a[from][i].to]>=dis[from]+a[from][i].value)
{
dis[a[from][i].to]=dis[from]+a[from][i].value;
if(dis[a[from][i].to]<mint[a[from][i].to])
{
mint[a[from][i].to]=dis[a[from][i].to];
ans[a[from][i].to]=0;
}
if(dis[a[from][i].to]==mint[a[from][i].to])
ans[a[from][i].to]=(ans[a[from][i].to]+1)%100003;
if(bz[a[from][i].to]==0)
{
bz[a[from][i].to]=1;
tail++;
d[tail]=a[from][i].to;
}
}
}
}
for(int i=1;i<=n;i++)
cout<<ans[i]<<endl;
}
我想监视的是 a[from][i].to,求帮助