赋值给字符[8]的向量
Assigning to vector of char[8]
如何为std::vector<char[8]>
分配某些内容?
#include <vector>
void test(void)
{
std::vector<char[8]> x; // works
x.push_back("7777777");
//
// error: array 'new' cannot have initialization arguments
// error: object expression of non-scalar type 'char [8]'
// cannot be used in a pseudo-destructor expression
char a[8] = "7777777";
x.push_back(a);
//
// error: array 'new' cannot have initialization arguments
// error: object expression of non-scalar type 'char [8]'
// cannot be used in a pseudo-destructor expression
char b[2][8] = {"7777777", "8888888"};
x.assign(b, b+2);
//
// error: static_assert failed "type is not assignable"
// error: array 'new' cannot have initialization arguments
}// end of function
看起来可以创建一个std::vector<char[8]>
但无法为其分配任何内容。如何至少制作最后一行(即x.assign(b, b+2)
(工作?
非常感谢您的帮助!
您不能有std::vector<char[8]>
char[8]
因为它不满足值类型的std::vector
要求。实际上,值类型要求为可擦除,char[8]
没有为其提供默认分配器。
您可以改用std::vector<std::array<char,8>>
。std::array<char,8>
不仅是可擦除的,而且是可分配的。
相关文章:
- 检查向量是否具有所有可能的字符组合
- 将转换字符键入 int 以用作向量C++的索引
- 在 std::无符号字符的向量处存储 int 的十六进制表示形式
- 将无符号字符的向量存储在数组中会给我 std::bad_alloc
- C++ - 使用基于范围的 for 循环将字符值分配给向量中的字符串不会分配值
- 将字符向量复制到另一个向量
- C++如何将字符数组转换为字节向量(向量<byte>)
- 尝试将字符串从文件读取到无符号字符向量中
- 如何将整数向量值插入字符向量
- 无法在声明时使用初始值设定项列表初始化常量字符*/字符串数组的向量
- 如何使用istream_iterator将无符号字符向量转换为字符串?
- C++ 获取向量中常量字符* [ ] 的长度
- 如何在 c++ 中将向量转换为<string>常量字符* const*?
- 将字符向量转换为单个字符串
- 有没有办法搜索向量的元素,<String>然后检查它是否包含特定的字符,如果它确实打印了它
- 拆分字符数组并存储为向量
- 将 c++ 向量转换为字符 ** 而不会泄漏内存
- 快速将无符号字符的向量强制转换为POD结构的向量,反之亦然
- 向量(字符):核心转储
- 如何将向量<字符*>转换为向量<string>/字符串