c++ - 使用 C++ 等效的 memmove 向右移动数组元素

标签 c++ arrays

出于学习目的,我正在创建一个容器,该容器基于具有类似 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/

相关文章:

C++:如何让程序读取单词而不是字符?以及如何让程序在输入 "lone"字符时停止读取?

java - 如何用 Java 或 C 监视/采样输出音频?

C++ 将共享库中的导出定义用作内联

arrays - 如何根据另一个数组对一个数组进行排序和过滤?

c - 函数执行后数组变为 NULL

c++ - MFC主线程只关注Dialog,需要处理从服务器接收到的数据

c++ - `constexpr` 函数也应该是 `noexcept` 吗?

ios - 更新数组内结构中的属性

arrays - 最大化一个数组的总和,同时保持另一数组对应元素的总和小于 k

javascript - 如何获取/获取函数的所有参数?