template <typename T>
int custom_memcmp(const T* a, const T* b, std::size_t n);这会比C的memcmp更快吗?
如果sizeof(T) != 1:它将执行较少的迭代,并且可以将值与其实际类型进行比较。例如,我希望直接比较两个'long long‘比比较两个8字节的缓冲区更快。
发布于 2012-05-31 01:24:32
memcmp通常是编译器固有的,因此将被优化为尽可能高效(将被矢量化、内联等)。
所以你几乎肯定不会打败它。当然,如果你想确定的话,那就去配置文件吧!
发布于 2012-05-31 01:24:58
不,它不会更快。memcmp将尽可能高效地比较适当大小的原始内存。只有天真的memcmp实现才会逐个字节地执行。
https://stackoverflow.com/questions/10821164
复制相似问题