谷甚论vscode
  • 板块灌水区
  • 楼主xiaofu15191
  • 当前回复4
  • 已保存回复4
  • 发布时间2021/8/30 14:20
  • 上次更新2023/11/4 08:33:27
查看原帖
谷甚论vscode
242317
xiaofu15191楼主2021/8/30 14:20

最近做某绿题,在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,求帮助

2021/8/30 14:20
加载中...