C++ Can';t在QopengelBuffer::allocate上使用std::vector代替std::array

C++ Can';t在QopengelBuffer::allocate上使用std::vector代替std::array,c++,qt,opengl,C++,Qt,Opengl,我正在使用OpenGl和Qt,我正在使用std::array分配一个缓冲区,我想用std::vector替换它,它应该以几乎相同的方式工作,但它根本不工作,只是黑屏 Vertex只是一个有六个浮点数(x、y、z、r、g、b)和几个方法的类 顶点声明 //有效 std::数组顶点={ 顶点0,顶点2,顶点顶部, 顶点2,顶点1,顶点顶部, 顶点1,顶点0,顶点顶部, 顶点0,顶点1,顶点2, }; //不起作用 标准::向量顶点={ 顶点0,顶点2,顶点顶部, 顶点2,顶点1,顶点顶部, 顶点1,

我正在使用OpenGl和Qt,我正在使用std::array分配一个缓冲区,我想用std::vector替换它,它应该以几乎相同的方式工作,但它根本不工作,只是黑屏

Vertex只是一个有六个浮点数(x、y、z、r、g、b)和几个方法的类

顶点声明

//有效
std::数组顶点={
顶点0,顶点2,顶点顶部,
顶点2,顶点1,顶点顶部,
顶点1,顶点0,顶点顶部,
顶点0,顶点1,顶点2,
};
//不起作用
标准::向量顶点={
顶点0,顶点2,顶点顶部,
顶点2,顶点1,顶点顶部,
顶点1,顶点0,顶点顶部,
顶点0,顶点1,顶点2,
};
缓冲区分配

m_vertex.allocate(vertex.data(),sizeof(vertex)*vertex.size());

什么是
m_顶点
allocate
是否获取字节数?为什么
std::vector vertex={…}
不起作用?
Vertex
是否不可复制?但是,
std::array
也不起作用。考虑到问题的性质,应该很容易组合一个数组。