【发布时间】:2011-11-09 07:12:43
【问题描述】:
使用memcpy 和std::copy 之间的效率损失有多严重?
我的系统上的向量实现似乎没有使用连续内存,这使我不得不稍后 std::copy 其内容,而不是执行 memcpy(dest, &vec[0], size);。我不确定这会对效率造成多大的影响。
【问题讨论】:
-
你使用的是什么实现? (C++03 保证连续存储)。
-
难道标准的要求向量使用连续内存,所以它们的地址可以传递给需要数组的函数吗?
-
如果您的向量数据不连续,那么您的实现不符合标准。
-
@Kerrek :我记得,两个主要的变化是创建默认初始化和值初始化之间的区别。
-
@Kerrek - C++98 没有说明向量是否连续。大多数人都认为无论如何都会如此。
标签: c++ performance stl