gpt4 book ai didi

c++ - 应该如何以 C++11 风格初始化这个成员 vector ?

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

我有一个类,它有一个成员变量 std::vector<double> .我想在类的初始化列表中初始化它。我试过下面的代码

MyClass::MyClass()
: m_myMemberVector( { 1.0, 2.0 } )
{...}

但编译器将其解释为 (itBegin, itEnd) std::vector 的构造函数.我看过这个问题error: ‘double’ is not a class, struct, or union type ,它指出了输入迭代器问题,但没有提供解决方案。

我有一个在构造函数主体中使用 BOOST 的有效实现,但如果可能的话,我宁愿在初始化列表中执行此操作。有什么优雅的方法可以使用 C++11 风格的初始化来构建包含两个 double 值的 vector 吗?

最佳答案

std::initializer_list<double>{ 1.0, 2.0 }而不是 { 1.0, 2.0 }可能有效,删除 () 也可能有效周围{ 1.0, 2.0 } .

这很可能是您的编译器中的一个错误,因此让事情更明确可能会有所帮助。

另一种可能性是 m_myMemberVector不是 std::vector<double>实际上,或者您正在使用的标准库未启用 C++11。

关于c++ - 应该如何以 C++11 风格初始化这个成员 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25569119/

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