Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/127.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 从';char';到非标量类型';向量<;char>';由于未知原因引发的错误_C++_Vector_G++_Compiler Errors - Fatal编程技术网

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 TTT
TicTacToe.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 );