如何在类定义中初始化向量成员变量?

sl

以下代码使用XCode 5.0而不是Visual Studio 2013编译OK。

#include <vector>

class VectorInit
{
private:
    std::vector<int> m_vector{1, 2, 3};   // fails to compile using VS 2013
};

int main()
{
    std::vector<int> vector{1, 2, 3};

    VectorInit vectorInit;

    return 0;
}

这是Visual Studio报告的错误:

Error   1   error C2664: 'std::vector<int,std::allocator<_Ty>>::vector(std::initializer_list<int>,const std::allocator<_Ty> &)' : cannot convert argument 3 from 'int' to 'const std::allocator<_Ty> &' c:\visual studio 2013\projects\vector-init\main.cpp 6   1   vector-init

我还没有找到如何在类定义中初始化矢量的示例。

哪个编译器正确?

如果语法无效,是否是在构造函数初始化程序列表中初始化m_vector的唯一选项?

galop1n

在课堂上,成员初始化是c ++ 11的功能,首次亮相VS2013。但是,当成员是聚合成员时,编译器会出现问题,请尝试使用复制构造函数。它也忽略采用构造函数列表的构造函数,并尝试仅将参数与常规构造函数参数匹配。

解决方法是,您可以创建一个临时向量,然后使用该语法移动,直到对编译器进行适当的更新。

class VectorInit
{
private:
    std::vector<int> m_vector { std::vector<int>{ 1, 2, 5, 7 } };
};

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在类模板的构造函数中初始化向量成员变量

来自分类Dev

如何初始化静态向量成员?

来自分类Dev

初始化后,Const_iterator成员变量未指向向量成员变量的开头

来自分类Dev

如何使用初始化列表来初始化2D向量成员?

来自分类Dev

如何初始化共享复杂初始化代码的多个常量成员变量?

来自分类Dev

在C ++中,如何在类中初始化不可复制的静态成员变量?

来自分类Dev

在模板化类中初始化私有成员变量向量

来自分类Dev

在类中常量成员的初始化

来自分类Dev

如何在Android类中初始化变量?

来自分类Dev

如何在模块中初始化ruby类变量

来自分类Dev

如何在类定义中初始化std :: array?

来自分类Dev

在类定义中初始化数据成员

来自分类Dev

如何在派生类中初始化基类staic内联数据成员?

来自分类Dev

在继承的类中重新定义常量成员变量

来自分类Dev

在继承的类中重新定义常量成员变量

来自分类Dev

初始化类的静态常量成员,其中成员是私有类型?

来自分类Dev

如何在 C++ 中的嵌套类中初始化 2 个成员

来自分类Dev

如何在 C++ 中声明一个零初始化的类成员?

来自分类Dev

如何在类的构造函数中初始化对象的2D向量?(C ++)

来自分类Dev

C++ 如何在类中声明和初始化向量

来自分类Dev

如何在成员初始值设定项列表之外初始化类成员

来自分类Dev

类对象的向量如何初始化

来自分类Dev

初始化类中的向量

来自分类Dev

在类中初始化向量

来自分类Dev

如何在子类中初始化静态成员?

来自分类Dev

如何在VHDL中初始化位向量

来自分类Dev

如何在凿子中初始化向量

来自分类Dev

如何在VHDL中初始化位向量

来自分类Dev

如何在Scala中定义常量成员?

Related 相关文章

热门标签

归档