【问题标题】:Static vector of array数组的静态向量
【发布时间】:2015-09-23 04:01:10
【问题描述】:

我想要一个可以在一个方向上扩展的 2D 静态矢量。数组的静态向量对我来说听起来很正确:

struct A
{
    public:
        static std::vector<std::array<float, 3> > theTable;
};

我尝试从 main 访问它:

A::theTable.push_back({0.0, 0.0, 0.0});

但我得到“没有匹配的函数来调用std::vector&lt;std::array&lt;float, 3ul&gt; &gt;::push_back(&lt;brace-enclosed initializer list&gt;)

如何声明这个数组向量,然后在其他任何地方正确使用?

【问题讨论】:

    标签: c++ arrays vector multidimensional-array 2d


    【解决方案1】:

    你好像没有定义theTable


    struct A
    {
        public:
            static std::vector<std::array<float, 3> > theTable;
    };
    std::vector<std::array<float, 3> > A::theTable; //define 
    

    【讨论】:

    • 确实需要。但我也需要帕迪的回答才能让它发挥作用!
    【解决方案2】:

    你推送的是一个双精度数组,而不是浮点数。将0.0 值更改为0.0f

    如果您仍有问题,可能是您需要额外的牙套。当我在带有所有警告的 G++ 中编译它时,我收到了警告:

    建议在子对象初始化时使用大括号 [-Wmissing-braces]

    所以,正确的代码应该是:

    A::theTable.push_back({{0.0f, 0.0f, 0.0f}});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-04
      • 2020-07-13
      • 2022-08-12
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      相关资源
      最近更新 更多