gpt4 book ai didi

c++ - 无法从大括号括起来的初始值设定项列表进行转换

转载 作者:行者123 更新时间:2023-11-30 05:04:07 25 4
gpt4 key购买 nike

我正在尝试编译下面的代码,但我一直遇到错误 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)){}

关于c++ - 无法从大括号括起来的初始值设定项列表进行转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49090575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com