初始化结构向量与括号包含初始化列表 [英] Initializing struct vector with brace-enclosed initializer list

查看:375
本文介绍了初始化结构向量与括号包含初始化列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我这样初始化正常类型的向量:

I initialize normal-type vectors like this:

vector<float> data = {0.0f, 0.0f};

但是当我使用结构而不是普通类型时

But when I use structure instead of normal-type

struct Vertex
{
    float position[3];
    float color[4];
};
vector<Vertex> data = {{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}};

我收到错误无法转换'{{0.0f,0.0f, 中的<0.0f,0.0f,0.0f,0.0f,0.0f,0.0f}}。这有什么问题?

I get error could not convert '{{0.0f, 0.0f, 0.0f}, {0.0f, 0.0f, 0.0f, 0.0f}}' from '<brace-enclosed initializer list>' to 'std::vector<Vertex>'. What's wrong with this?

推荐答案

缺少一组 {}

std::vector<Vertex> data =
{ // for the vector
    { // for a Vertex
        {0.0f, 0.0f, 0.0f},      // for array 'position'
        {0.0f, 0.0f, 0.0f, 0.0f} // for array 'color'
    },
    {
        {0.0f, 0.0f, 0.0f},
        {0.0f, 0.0f, 0.0f, 0.0f}
    }
};

这篇关于初始化结构向量与括号包含初始化列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆