出于学习目的,我正在创建一个容器,该容器基于具有类似 map 功能的数组。每次我插入一个键时,我都想保持数组有序。我已经实现了函数来查找键在数组索引中的位置,我目前唯一的问题是有效地移动数组元素。
我有一个简单的循环来执行此操作:
for (size_t i = mSize; i > n; i--)
{
mCont[i] = mCont[i - 1];
}
但是,我想可能使用诸如 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 ) );
关于c++ - 使用 C++ 等效的 memmove 向右移动数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33639503/