Encontré comentarios sobre cómo evitar cadenas para la comparación de valores (especialmente en loops) en algunos libros porque la comparación de cadenas es mucho más lenta (usando std :: string). Pero, ¿por qué exactamente es eso?¿Por qué la comparación de enteros es más rápida que la comparsión de cadenas?
¿Se debe a que las unidades enteras de la CPU funcionan más rápido?
Las cadenas deberían estar en byte, supongo, ¿así que una comparación de bytes no haría el trabajo por igual?
Gracias!
Actualmente dos comparaciones por personaje (frente a la otra cadena, y contra NUL para cadenas terminadas, o contra la longitud para cadenas contadas). Pero SSE puede realizar 16 de esas comparaciones en el tiempo de una comparación de enteros. –
@Voigt: Olvidé la comparación '\ 0', pero sí, creo que lo dejo así. No quiero ser demasiado específico y perder el panorama general. :) –