C++ · Intermediário · Inglês · Técnico
string view
Visão leve, do C++17, de uma sequência de caracteres que já existe: guarda só ponteiro e tamanho, sem copiar nem ser dona do texto. Aceita std::string e literais.
Onde usar
Usada como tipo de parâmetro em funções que só leem texto, evitando cópias e alocações. O risco é a visão sobreviver ao texto original e virar ponteiro pendurado.
Em código
void ver(std::string_view s) {
std::cout << s.substr(0, 3);
}
ver("abcdef"); // sem cópia
std::string t = "xyz";
ver(t); // sem cópiaExemplos
Take a string view, you only need to read it.
Receba um string view, você só precisa ler.
That string view points to a temporary that's already gone.
Esse string view aponta para um temporário que já sumiu.
Cuidado
string_view não garante terminador nulo, então não deve ser passada a APIs de C que esperam uma string terminada em zero.
Sinônimos
visão de string