gpt4 book ai didi

c++ - 得到警告: ' In function ‘void dfs(int)’ Warning: comparison between signed and unsigned integer expressions'

转载 作者:行者123 更新时间:2023-12-02 09:54:46 25 4
gpt4 key购买 nike

我正在研究一个简单的DFS问题,我必须返回与其父节点相比有更多子节点的各个子节点的数量(子节点>父节点:Count++)。

我遇到了标题中提到的问题,但无法解决。我也使用unsigned int,但无济于事。我对这个问题的逻辑很清楚,但是对于编码来说还很陌生,因此会遇到诸如此类的错误。我将仅在下面出现问题的地方附加我的DFS函数。请帮我解决一下这个。 (使用邻接表)

vector<int> adj[100001];
bool visited[100001]={false};
int parent=0;
int child=INT_MAX;
int counterr=0;

/*Recursive DFS:*/

void dfs(int s){
child=adj[s].size()-1;
if(child>parent)
counterr++;
if(s==1)
parent=adj[s].size();
else
parent=adj[s].size()-1;
visited[s]=true;
for(int i=0;i<adj[s].size();i++)
{
if(visited[adj[s][i]==false])
dfs(adj[s][i]);
}
}

最佳答案

在大多数情况下,您可以忽略这一点。但是,如果您的整数超过了正常的整数限制,或者您的adj [s] vector 为空,则可能会出现问题。如果 parent 永远不会消极,你可以换行

int parent;



unsigned int parent;

这将完全阻止此警告。

关于c++ - 得到警告: ' In function ‘void dfs(int)’ Warning: comparison between signed and unsigned integer expressions',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61155124/

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