出于学习目的,我正在创建一个容器,它基于一个具有类似地图功能的数组。每次我插入一个键,我想保持数组的顺序。我已经实现了函数来查找键应该在数组索引中的位置,我目前唯一的问题是有效地移动数组元素。
我有一个简单的循环来执行此操作:
for (size_t i = mSize; i > n; i--)
{
mCont[i] = mCont[i - 1];
}
但是,我希望可以使用memmove这样的东西来更快地做到这一点 - 但我不知道如何使用它 - 当容器的大小增加时。
感谢您的时间。
答案 0 :(得分:5)
您可以使用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 ) );