我有以下C++代码..。
struct myType
{
int SID;
int IID;
std::string myString;
};
std::vector<myType[2]> _type;问题是当我这么做的时候。
for (int x = 1; x < 82432; x++)
{
_type.push_back(myType());
}它给出了以下错误
Error 441 error C2664: 'void std::vector<myType [2],std::allocator<_Ty>>::push_back(const myType (&)[2])' : cannot convert argument 1 from 'myType' to 'myType (&&)[2]'其想法是创建一个向量数组,如下所示:_type82431.SID <<=类型
感谢任何人的帮助!
发布于 2015-11-27 15:55:35
你不能创建数组类型的向量,其中一个原因是你不能将一个数组赋给另一个数组,你可以得到的闭包是:
std::vector<std::array<myType, 2>> _type;这也是不对的
for (int x = 1; x < 82432; x++)
{
_type.push_back(myType());
}即使你可以创建数组的向量,在你的循环中,当你的向量是myType[2]类型的时候,你正在推送myType类型的数据。因此,要使其与std::array一起工作,请更改为_type.push_back({myType(), myType()});
有关其他用途,请参阅此处的http://coliru.stacked-crooked.com/a/b77015b21524de77
发布于 2015-11-27 16:05:54
出于一些愚蠢的原因..。我能做到的!
myType _type[82432][2];https://stackoverflow.com/questions/33952556
复制相似问题