int和bool之间的不一致

纳林·巴德瓦(Nalin Bhardwaj)

我只是在C ++中实现了广度优先搜索,而不是将向量声明为bool,而是将其声明为int这导致一个非常奇怪的观察。当我使用时int,代码显示以下内容:

1
32763
-524268732

在整个代码中,我没有像第2个节点和第3个节点一样为变量提供任何值,因此我假设它们只是垃圾值,但是当我将向量初始化为时,为什么还会出现垃圾值呢?充满零??? 您可以检查以下代码:

#include <iostream>
#include <queue>
using namespace std;

queue<int> neigh;
vector< vector<int> > graph(3);
vector<int> flag(3, 0);

int main(void)
{
    graph[0].push_back(1); graph[0].push_back(2);
    graph[1].push_back(0); graph[1].push_back(2);
    graph[2].push_back(0); graph[3].push_back(1);
    neigh.push(0);
    while(!neigh.empty())
    {

        int cur = neigh.front();
        neigh.pop();
        flag[cur] = 1;

        for(int i = 0, l = graph[cur].size();i < l;i++)
        {
            if(!flag[graph[cur][i]])
                neigh.push(graph[cur][i]);
        }
    }
    for(int i = 0;i < 3;i++)
    {
        cout << flag[i] << endl;
    }
}

好了,然后我只更改了一行代码,第7行,即声明和初始化flag向量的那一行

前:

vector<int> flag(3, 0);

后:

vector<bool> flag(3, false);

瞧!代码开始工作:

1 //The new output
1
1

所以,我的问题是,代码最初是什么问题?我相信这可能是我犯的某种错误,或者可能是我的bfs实现完全起作用的偶然机会...那么,真相是什么呢?我的(可能的)错误是什么?

juanchopanza

您正在这里访问矢量:

graph[3].push_back(1);

目前,graph只有三个要素。这导致不确定的行为

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在struct和int之间的clang中重新定义不一致

来自分类Dev

gcc和clang之间的C ++不一致

来自分类Dev

序列和seqiplot之间不一致

来自分类Dev

Rectangle和FancyBboxPatch之间的行为不一致

来自分类Dev

gcc和clang之间的C ++不一致

来自分类Dev

ntpd和ntpdate之间不一致

来自分类Dev

FF和Chrome之间的Flex和断字不一致行为

来自分类Dev

在Pandas和python中比较int和floats是不一致的。为什么?

来自分类Dev

INPUT和LABEL之间的线高不一致

来自分类Dev

std :: setw()和ostream :: width()之间的类型不一致

来自分类Dev

MSVC和Clang之间不一致的大括号或相等初始化行为

来自分类Dev

搜索并替换vim和sed之间的不一致

来自分类Dev

无符号和较大符号类型之间隐式转换的不一致行为

来自分类Dev

“ nvidia-smi -L”和cuDeviceGetName()之间的ID不一致

来自分类Dev

“ getent组”和“ getent组<groupname>”之间的不一致–为什么?

来自分类Dev

MS Edge 12和Edge 13之间的mxClient.isBrowserSupported()值不一致

来自分类Dev

Spring / freemarker包含IDE和命令行之间的模板不一致

来自分类Dev

内置类型和用户定义之间的不一致

来自分类Dev

Marklogic中cts:search和cts:uris之间的不一致

来自分类Dev

命令行和subprocess.call之间的标准输入不一致

来自分类Dev

jQuery:div和tbody之间的find行为不一致

来自分类Dev

group()和group()之间的Python正则表达式输出不一致

来自分类Dev

R中“ read.csv”和“ write.csv”之间的不一致

来自分类Dev

ComponentOrientation设置为RTL时,JLabel和JTextField之间不一致

来自分类Dev

在Python中matplotlib和seaborn之间的情节不一致

来自分类Dev

toList和toBuffer之间的类型推断不一致

来自分类Dev

ffprobe和ffmpeg之间的关键帧识别结果不一致

来自分类Dev

Jupyter Notebook和Conda命令行之间的软件包不一致

来自分类Dev

df.drop()和df.idxmin()之间的怪异不一致

Related 相关文章

  1. 1

    在struct和int之间的clang中重新定义不一致

  2. 2

    gcc和clang之间的C ++不一致

  3. 3

    序列和seqiplot之间不一致

  4. 4

    Rectangle和FancyBboxPatch之间的行为不一致

  5. 5

    gcc和clang之间的C ++不一致

  6. 6

    ntpd和ntpdate之间不一致

  7. 7

    FF和Chrome之间的Flex和断字不一致行为

  8. 8

    在Pandas和python中比较int和floats是不一致的。为什么?

  9. 9

    INPUT和LABEL之间的线高不一致

  10. 10

    std :: setw()和ostream :: width()之间的类型不一致

  11. 11

    MSVC和Clang之间不一致的大括号或相等初始化行为

  12. 12

    搜索并替换vim和sed之间的不一致

  13. 13

    无符号和较大符号类型之间隐式转换的不一致行为

  14. 14

    “ nvidia-smi -L”和cuDeviceGetName()之间的ID不一致

  15. 15

    “ getent组”和“ getent组<groupname>”之间的不一致–为什么?

  16. 16

    MS Edge 12和Edge 13之间的mxClient.isBrowserSupported()值不一致

  17. 17

    Spring / freemarker包含IDE和命令行之间的模板不一致

  18. 18

    内置类型和用户定义之间的不一致

  19. 19

    Marklogic中cts:search和cts:uris之间的不一致

  20. 20

    命令行和subprocess.call之间的标准输入不一致

  21. 21

    jQuery:div和tbody之间的find行为不一致

  22. 22

    group()和group()之间的Python正则表达式输出不一致

  23. 23

    R中“ read.csv”和“ write.csv”之间的不一致

  24. 24

    ComponentOrientation设置为RTL时,JLabel和JTextField之间不一致

  25. 25

    在Python中matplotlib和seaborn之间的情节不一致

  26. 26

    toList和toBuffer之间的类型推断不一致

  27. 27

    ffprobe和ffmpeg之间的关键帧识别结果不一致

  28. 28

    Jupyter Notebook和Conda命令行之间的软件包不一致

  29. 29

    df.drop()和df.idxmin()之间的怪异不一致

热门标签

归档