c++ - 我需要以反向方式复制一个长数组 我需要一个系统函数,例如 memcpy 有吗?

标签 c++ c memcpy

我需要从末尾复制一个长整型数组到一个长整型数组,如下面的代码所示。是否有类似于 memcpy 的函数来满足所需目的?

typedef long int myT;
const size_t n=5;
myT a[n];
myT b[n]={12,45,56,76,78};

int main(int argc, char **argv)
{
    myT *p1=&a[0];
    myT *p2=&b[n];
    for(auto i=n;i-->0;) 
        *p1++=*--p2;
    return 0;
}

最佳答案

这就是std::reverse_copy确实如此。

int main()
{
  std::reverse_copy(b, b+n, a);
}

或自 C++11 起:

int main()
{
  std::reverse_copy(std::begin(b), std::end(b), std::begin(a));
}

关于c++ - 我需要以反向方式复制一个长数组 我需要一个系统函数,例如 memcpy 有吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35985721/

相关文章:

找不到素数

c++ - 在没有 CRT、memcpy 和 memset 内部函数的情况下构建时出现链接错误

c++ - 将转换构造函数与运算符重载相结合

c++ - 如果存在同名的不相关全局模板函数,为什么不需要模板关键字?

c++ - 将 C++ 方法和变量并排绑定(bind)到一个表

c - 批处理文件启动但在 c 中启动时命令不运行

c - 查找 C 库中的函数列表

c++ - 找不到-lopencv_contrib 找不到-lopencv_legacy

c - 在标准 C 中从头开始实现 memcpy 在技术上是不可能的吗?

c# - 将值复制到安全上下文中特定偏移量的字节数组中