es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reemplace const std::string pasado por referencia, con std::string_view.

Tengo el siguiente método que recibe una cadena de texto (std::string) como argumento de entrada.

int func(const std::string &filename);

De su firma, se entiende que el tipo de entrada se pasa por referencia (no se hace copia) y no se debe modificar (por el prefijo “const”).

¿Sería equivalente usar std::string_view en su lugar, el cual también se utiliza para solo lectura?

int func(std::string_view filename);

Y si no, ¿en qué aspectos no son similares (tiempo de ejecución, consumo de memoria, funcionalidad, etc.)?

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, utilizar std::string_view en lugar de const std::string & sería equivalente en términos de acceso de solo lectura. La principal diferencia entre ambos es que std::string_view es un envoltorio ligero alrededor de una cadena, mientras que const std::string & es una referencia a un objeto std::string. Esto significa que std::string_view tendrá una huella de memoria más pequeña y será más eficiente en términos de rendimiento en tiempo de ejecución.

Comments are closed.