我有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
内使用吗?
答案 0 :(得分:5)
您可以直接使用std::copy
:
std::copy(vVerticesList.begin(), vVerticesList.end(),
m_vVertices.begin() + iOffset);