none
uninitialized_copy vs. memcpy RRS feed

  • 问题

  • 如果想将一连续空间内的数据复制到另外地方,是用uninitialized_copy好还是用memcpy(memcpy_s)好?看书说uninitialized_copy使用的是拷贝对象的copy construct,是不是memcpy直接复制内存数据更快?有没有限制条件?

    2008年12月22日 16:14

答案

  • 得看copy construct到底做了什么。如果它里面只是memcpy的话,那没有什么区别。如果有引用计数这样的东东,直接复制内存就有区别。
    2008年12月22日 18:34
    版主
  • uninitialized_copy比memcpy复杂很多。他好像对char和普通数据类型都进行了特化。对这些类型进行Copy的时候和memcpy一样的,只是简单的内存拷贝。但如果是对象,那么就会调用placement new来进行初始化。

    uninitialized_copy更加安全。
    2008年12月23日 0:34
    版主

全部回复

  • 得看copy construct到底做了什么。如果它里面只是memcpy的话,那没有什么区别。如果有引用计数这样的东东,直接复制内存就有区别。
    2008年12月22日 18:34
    版主
  • uninitialized_copy比memcpy复杂很多。他好像对char和普通数据类型都进行了特化。对这些类型进行Copy的时候和memcpy一样的,只是简单的内存拷贝。但如果是对象,那么就会调用placement new来进行初始化。

    uninitialized_copy更加安全。
    2008年12月23日 0:34
    版主