将字符串数组转换为字符串类型的向量

Md *_*sal 1 c++ arrays initialization vector multidimensional-array

我想初始化一个带有以下arr数据的向量,因为我必须初始化一个字符串类型数组并将其值复制到向量字符串这就是我这样做的方式

它会带来很多错误

string arr[6][8]={
"AAAAAAAA",
"ABWBWBWA",
"ABWBWBWA",
"ABWBWBWA",
"ABWBWBWA",
"AAAAAAAA"};
vector<string> v(arr,arr+sizeof(arr)/sizeof(string));   
Run Code Online (Sandbox Code Playgroud)

我已经为int数组和int类型的向量完成了它.像这样,

int vv[]={0,0,0,8};
vector<int> v(vv,vv+sizeof(vv)/sizeof(int));        
Run Code Online (Sandbox Code Playgroud)

它适用于这种类型,但对于字符串类型,它不起作用.

Ker*_* SB 5

你的阵列毫无意义.它应该是:

std::string arr[] = {
  "AAAAAAAA",
  "ABWBWBWA",
  "ABWBWBWA",
  "ABWBWBWA",
  "ABWBWBWA",
  "AAAAAAAA" };
Run Code Online (Sandbox Code Playgroud)

然后

std::vector<std::string> v(arr, arr + sizeof(arr) / sizeof(std::string));
Run Code Online (Sandbox Code Playgroud)

应该按预期工作.

或者你可以解决6并说出来v(arr, arr + 6);.

但是,在现代C++中,您只需说,

std::vector<std::string> v {
  "AAAAAAAA",
  "ABWBWBWA",
  "ABWBWBWA",
  "ABWBWBWA",
  "ABWBWBWA",
  "AAAAAAAA"
};
Run Code Online (Sandbox Code Playgroud)