无法从大括号括起来的初始值设定项列表转换
Could not convert from brace-enclosed initializer list
>我正在尝试编译下面的代码,但一直遇到错误 could not convert '{{1, 2}, {5, 6}}' from '<brace-enclosed initializer list>' to 'Class1'
.我正在-std=c++11
编译代码。我的初始化有误吗?
class Class1
{
public:
vector<vector<int> > a;
Class1(vector<vector<int> > p)
{
for(int i = 0; i < 2; i++)
for(int j = 0; j < 2; j++)
a[i][j] = p[i][j];
}
};
int main()
{
Class1 ClassValue = {{ 1, 2, },{ 5, 6 } };
return 0;
}
首先,将行更改为:
Class1 ClassValue ({{ 1, 2 },{ 5, 6 } });
第二件事是你的构造函数是无效的,因为你写入不存在的内存。相反,请使用:
Class1(vector<vector<int> > p):a(p){}
评论后编辑:这个会更好(更快(,因为您不会第二次复制。
Class1(vector<vector<int> > p):a(move(p)){}
相关文章:
- 复制列表初始化的隐式转换的等级是多少
- 如何在不强制转换每个参数的情况下删除初始值设定项列表中从 int 到 char 的缩小转换?
- 为什么我会收到此错误?无法将 {lb, ub} 从<大括号括起来的初始值设定项列表>转换为 float(**)(float*, int)
- std::map, std::unordered_map - 缩小初始值设定项列表中的转换范围
- 无法从"初始值设定项列表"转换为模板<int>
- 将 lambda 函数转换为具有混合 lambda 引入器和参数列表的函子结构
- 传递可变参数时在成员初始值设定项列表中强制转换
- C++中有向无环图的邻接列表到邻接矩阵的转换
- C++列表初始化允许多个用户定义的转换
- 类型映射资源并将列表转换为矢量(并返回)
- 函数获取参数的变量列表并将它们转换为一系列字节?
- 从 std::vector<double> 到 Python 列表的转换失败(提升 python)
- 在初始值设定项列表中强制转换shared_ptr
- 将 std::list of structs 转换为 Python 列表
- 标准::列表转换和复制
- 如何在逗号分开列表中解析字段并将其转换为整数
- 错误 C2440:"正在初始化":无法从"初始值设定项列表"转换为"std::vector<char *,std::分配器<_Ty>>
- 如何将任何值转换为字节数组并将其附加到字节列表
- 解析SVG转换属性的转换列表
- 最好强制转换列表中的一个元素,或者使用指向它的指针