出于学习目的,我正在创建一个基于具有类似地图功能的数组的容器.每次我插入一个键,我想保持数组的顺序.我已经实现了函数来查找键应该在数组索引中的位置,我目前唯一的问题是有效地移动数组元素.
我有一个简单的循环来做到这一点:
for (size_t i = mSize; i > n; i--)
{
mCont[i] = mCont[i - 1];
}
Run Code Online (Sandbox Code Playgroud)
但是,我希望可以使用诸如memmove之类的东西来更快地做到这一点 - 但我不确定如何使用它 - 当容器的大小增加时.
谢谢你的时间.
你可以使用std::move_backward:
std::move_backward( std::next( std::begin( mCont ), n ),
std::next( std::begin( mCont ), mSize - 1 ),
std::next( std::begin( mCont ), mSize ) );
Run Code Online (Sandbox Code Playgroud)