gpt4 book ai didi

c++ - std::vector 构造函数警告

转载 作者:行者123 更新时间:2023-11-30 00:39:38 26 4
gpt4 key购买 nike

我想弄清楚这段代码的作用:

std::vector<std::vector<bool> > visited(rows, std::vector<bool>(cols, 0));

'rows' 和 'cols' 都是整数。

它调用构造函数,但我不确定如何调用。这是我从某个项目中获得的示例代码...

它还给我以下警告:

c:\program files (x86)\microsoft visual studio 10.0\vc\include\vector(2140): warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
1> c:\program files (x86)\microsoft visual studio 10.0\vc\include\vector(2126) : see reference to function template instantiation 'void std::vector<_Ty,_Ax>::_BConstruct<_Iter>(_Iter,_Iter,std::_Int_iterator_tag)' being compiled
1> with
1> [
1> _Ty=bool,
1> _Ax=std::allocator<bool>,
1> _Iter=int
1> ]
1> c:\ai challenge\code\project\project\state.cpp(85) : see reference to function template instantiation 'std::vector<_Ty,_Ax>::vector<int>(_Iter,_Iter)' being compiled
1> with
1> [
1> _Ty=bool,
1> _Ax=std::allocator<bool>,
1> _Iter=int
1> ]

有人能帮忙吗?

最佳答案

它正在创建一个“二维” vector 。它有 rows行数,每行有 cols列数,每个单元格初始化为 false (0)。

vector 的构造函数它使用的是采用它最初应该具有的元素数量以及初始化每个元素的值的那个。所以visited最初有 rows元素,每个元素都用 std::vector<bool>(cols, 0) 初始化, 最初有 cols元素的数量,每个元素都用 0 初始化(即 false )。

它给你警告是因为它正在转换 0 ,一个整数,到false , 一个 bool .您可以通过替换 0 来修复它与 false .

关于c++ - std::vector 构造函数警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8283054/

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