std :: vector使用N个值在位置iOffset处更新

时间:2012-10-10 10:59:44

标签: c++ stdvector

我有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内使用吗?

1 个答案:

答案 0 :(得分:5)

您可以直接使用std::copy

 std::copy(vVerticesList.begin(), vVerticesList.end(), 
                                         m_vVertices.begin() + iOffset);