Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 什么';s顶点缓冲区的向量和数组之间的差异_C++_Arrays_Vector - Fatal编程技术网

C++ 什么';s顶点缓冲区的向量和数组之间的差异

C++ 什么';s顶点缓冲区的向量和数组之间的差异,c++,arrays,vector,C++,Arrays,Vector,我有以下代码,可以漂亮地渲染正方形: static const VertexPositionColor cubeVertices[] = { { XMFLOAT3( 1.0f, -1.0f, 0.0f ), XMFLOAT3( 1.0f, 0.0f, 0.0f ) }, { XMFLOAT3( -1.0f, -1.0f, 0.0f ), XMFLOAT3( 1.0f, 0.0f, 0.

我有以下代码,可以漂亮地渲染正方形:

            static const VertexPositionColor cubeVertices[] =
            {
                { XMFLOAT3( 1.0f, -1.0f, 0.0f ), XMFLOAT3( 1.0f, 0.0f, 0.0f ) },
                { XMFLOAT3( -1.0f, -1.0f, 0.0f ), XMFLOAT3( 1.0f, 0.0f, 0.0f ) },
                { XMFLOAT3( 1.0f, 1.0f, 0.0f ), XMFLOAT3( 1.0f, 0.0f, 0.0f ) },
                { XMFLOAT3( -1.0f, 1.0f, 0.0f ), XMFLOAT3( 1.0f, 0.0f, 0.0f ) },
            };

            D3D11_SUBRESOURCE_DATA vertexBufferData = { 0 };
            vertexBufferData.pSysMem = &cubeVertices;
            vertexBufferData.SysMemPitch = 0;
            vertexBufferData.SysMemSlicePitch = 0;
            CD3D11_BUFFER_DESC vertexBufferDesc( sizeof( cubeVertices ), D3D11_BIND_VERTEX_BUFFER );
            DX::ThrowIfFailed(
                m_deviceResources->GetD3DDevice()->CreateBuffer(
                &vertexBufferDesc,
                &vertexBufferData,
                &m_vertexBuffer[ a ]
                )
                );
现在,把这个代码。。。这是完全相同大小的复制品(96)。。。但是这个用的是向量。。。为什么它什么都没有

        FormatCollada* colladaObj = new FormatCollada();
        static const vector<VertexPositionColor> cubeVertices = colladaObj->Format( *geometryData->Collada->LibraryGeometries->Geometry[ a ] );

        D3D11_SUBRESOURCE_DATA vertexBufferData = { 0 };
        vertexBufferData.pSysMem = &cubeVertices;
        vertexBufferData.SysMemPitch = 0;
        vertexBufferData.SysMemSlicePitch = 0;
        CD3D11_BUFFER_DESC vertexBufferDesc( sizeof( VertexPositionColor ) * cubeVertices.size(), D3D11_BIND_VERTEX_BUFFER );
        DX::ThrowIfFailed(
            m_deviceResources->GetD3DDevice()->CreateBuffer(
            &vertexBufferDesc,
            &vertexBufferData,
            &m_vertexBuffer[ a ]
            )
            );
FormatCollada*colladaObj=newformatCollada();
静态常量向量立方=colladaObj->Format(*geometryData->Collada->librarygeometrics->Geometry[a]);
D3D11_子资源_数据vertexBufferData={0};
vertexBufferData.psysem=&cubeVertices;
vertexBufferData.SysMemPitch=0;
vertexBufferData.SysMemSlicePitch=0;
CD3D11_BUFFER_DESC vertexBufferDesc(sizeof(vertexositioncolor)*cubeVertices.size(),D3D11_BIND_VERTEX_BUFFER);
DX::ThrowIfFailed(
m_deviceResources->GetD3DDevice()->CreateBuffer(
&vertexBufferDesc,
&vertexBufferData,
&m_顶点缓冲区[a]
)
);

&cubeVertices
不提供向量
的第一个元素的地址,而是提供向量对象本身的地址。您可能想要
cubeVertices.data()