首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有多个的c++ Push_back类型

具有多个的c++ Push_back类型
EN

Stack Overflow用户
提问于 2015-11-27 15:48:37
回答 2查看 275关注 0票数 1

我有以下C++代码..。

代码语言:javascript
复制
struct myType
{
    int SID;
    int IID;
    std::string myString;
};

std::vector<myType[2]> _type;

问题是当我这么做的时候。

代码语言:javascript
复制
for (int x = 1; x < 82432; x++)
{
    _type.push_back(myType());
}

它给出了以下错误

代码语言:javascript
复制
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 <<=类型

感谢任何人的帮助!

EN

回答 2

Stack Overflow用户

发布于 2015-11-27 15:55:35

你不能创建数组类型的向量,其中一个原因是你不能将一个数组赋给另一个数组,你可以得到的闭包是:

代码语言:javascript
复制
std::vector<std::array<myType, 2>> _type;

这也是不对的

代码语言:javascript
复制
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

票数 3
EN

Stack Overflow用户

发布于 2015-11-27 16:05:54

出于一些愚蠢的原因..。我能做到的!

代码语言:javascript
复制
myType _type[82432][2];
票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33952556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档