0

我有std::vector<int> around,我需要更新(/覆盖)从位置X开始的N 个值。

想象一个包含整个房间顶点的顶点列表。

随机移动椅子,只需要更新属于椅子的顶点,因此需要更新整个房间顶点列表中的一组椅子顶点。

伪代码:

void CVertexBuffer::Update(int iOffset, const std::vector<tVertex>& vVerticesList)
{

  // Update VAO
     ...


  //
  // Update m_vVertices (holding current vertices list) 
  // with vVerticesList (holding updated vertices data )
  // starting at position iOffset
  // The size of m_vVertices never changes
  // 
  // The Dumb way ( just for pseudocoding )

  for(int a = iOffset; a < vVerticesList.size(); a++)
  {
     m_vVertices[a] = vVerticesList[a-iOffset];
  }
}

有什么我可以在里面使用的std::vector吗?

4

1 回答 1

5

您可以直接使用std::copy

 std::copy(vVerticesList.begin(), vVerticesList.end(), 
                                         m_vVertices.begin() + iOffset);
于 2012-10-10T11:03:16.173 回答