aHu*_*ter 24 c++ arrays collections
我正在尝试编写一个具有char数组向量的程序,但是我遇到了一些问题.
char test [] = { 'a', 'b', 'c', 'd', 'e' };
vector<char[]> v;
v.push_back(test);
Run Code Online (Sandbox Code Playgroud)
对不起,这必须是一个char数组,因为我需要能够生成字符列表,因为我试图获得类似的输出.
aa ab ac ad ae ba bc
谁能指出我正确的方向?
谢谢
小智 68
您不能将数组存储在向量(或任何其他标准库容器)中.标准库容器存储的东西必须是可复制和可分配的,并且数组都不是这些.
如果你真的需要在一个向量中放置一个数组(你可能不需要 - 使用向量向量或字符串向量更可能是你需要的),那么你可以将数组包装在一个结构中:
struct S {
char a[10];
};
Run Code Online (Sandbox Code Playgroud)
然后创建一个结构矢量:
vector <S> v;
S s;
s.a[0] = 'x';
v.push_back( s );
Run Code Online (Sandbox Code Playgroud)
Tro*_*nic 11
你需要
char test[] = "abcde"; // This will add a terminating \0 character to the array
std::vector<std::string> v;
v.push_back(test);
Run Code Online (Sandbox Code Playgroud)
如果你打算制作一个字符向量而不是字符串向量,
std::vector<char> v(test, test + sizeof(test)/sizeof(*test));
Run Code Online (Sandbox Code Playgroud)
该表达式sizeof(test)/sizeof(*test)用于计算数组测试中的元素数.