gpt4 book ai didi

c++ - 在 STL 队列中插入对元素时出错

转载 作者:行者123 更新时间:2023-11-30 03:49:27 24 4
gpt4 key购买 nike

我有一个元素对队列,我用它在矩形网格上执行 BFS。但是我在队列上执行推送操作时出错,尽管我在其他地方执行类似操作。

代码:

int get_ind(int &ii,int &jj,int i,int j,int x)
{
queue <pair<int,int> > q;
q.push({i,j});
while(!q.empty())
{
int ti = q.front().first;
int tj = q.front().second;
q.pop();

for(int p=-1; p<=1; p++)
{
for(int q=-1; q<=1; q++)
{
ii = ti+p;
jj = tj+q;
if(issafe(ii,jj))
{
q.push({ti+p,tj+q});
if (arr[ii][jj]==x)
return 0;
}
}
}
}
}

错误:

error: request for member 'push' in 'q', which is of non-class type 'int'
q.push({ti+p,tj+q});

最佳答案

你在你的循环中隐藏了q:

queue <pair<int,int> > q;
// later
for(int q=-1; q<=1; q++)

在循环中使用不同的变量名。

关于c++ - 在 STL 队列中插入对元素时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32501331/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com