1
template <typename T>
int custom_memcmp(const T* a, const T* b, std::size_t n);

これは C の memcmp よりも高速でしょうか?

sizeof(T) != 1 の場合: 反復回数が少なくなり、値を実際の型として比較できます。たとえば、2 つの 'long long' を直接比較すると、2 つの 8 バイト バッファを比較するよりも高速になります。

4

2 に答える 2

6

memcmp通常、コンパイラ組み込みであるため、可能な限り効率的になるように最適化されます (ベクトル化、インライン化など)。

なので、ほぼ確実に勝てません。もちろん、確実に知りたい場合は、プロフィールを作成してください。

于 2012-05-30T17:24:31.753 に答える
1

いいえ、速くなりません。memcmp は、適切なサイズの生メモリを可能な限り効率的に比較するだけです。memcmp の素朴な実装だけがバイト単位でそれを行います。

于 2012-05-30T17:24:57.523 に答える