C++ 从';char';到非标量类型';向量<;char>';由于未知原因引发的错误
由于未知原因引发的错误C++ 从';char';到非标量类型';向量<;char>';由于未知原因引发的错误,c++,vector,g++,compiler-errors,C++,Vector,G++,Compiler Errors,由于未知原因引发的错误 #include "std_lib_facilities.h" int main() { vector<char> shape = ('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a'); return(0); } #包括“std_lib_facilities.h” int main() { 向量形状=('a','a','a','a','a','a','a','a','a'); 返回(
#include "std_lib_facilities.h"
int main()
{
vector<char> shape = ('a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a');
return(0);
}
#包括“std_lib_facilities.h”
int main()
{
向量形状=('a','a','a','a','a','a','a','a','a');
返回(0);
}
有向量的那一行抛出了这个错误,我以前从未见过,也无法理解
::g++TicTacToe.cpp-o TTTTicTacToe.cpp:在函数
int main()中:
TicTacToe.cpp:5:错误:请求从
char'转换为非标量类型“Vector”
在每个tic-tac-toe-box中,它将以u开头,然后转到X或O,我在没有图形库的情况下这样做,因此它的终端图形。vector没有这样的构造函数。在当前C++中,这种向量初始化是不可能的。您可以使用:
vector<char> shape(9, 'a');
矢量形状(9,'a');
这将产生所需的效果(创建一个大小为9的向量,其中所有元素都设置为'.
)
If是一个选项,提供了您最初想要实现的语法类型,尽管在这种特定情况下,使用适当的std::vector
构造函数基本上就足够了。该类具有以下构造函数:
explicit vector( size_type n, const T& value= T(), const Allocator&=Allocator());
使用它,您可以执行以下操作:
vector<char> shape (9,'a');
向量形状(9,'a');
如果所有值都相同,则可以使用
std::vector的以下构造函数:
std::vector<char> shape( 9, 'a' );
std::向量形状(9,'a');
如果部分或全部值不同,则可以使用另一个构造函数,如下所示:
static const char ini[] = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i' };
std::vector<char> shape( ini, ini+sizeof(ini) );
static const char ini[]={'a','b','c','d','e','f','g','h','i'};
向量形状(ini,ini+sizeof(ini));
或
static const char ini[]=“abcdefghi”;
std::向量形状(ini,ini+sizeof(ini)-1);
呵呵,我把数组和向量混合起来了,呵呵;P
static const char ini[] = "abcdefghi";
std::vector<char> shape( ini, ini+sizeof(ini)-1 );