std::basic_string_view<CharT,Traits>::basic_string_view
De cppreference.com
<tbody>
</tbody>
constexpr basic_string_view() noexcept; |
(1) | (desde C++17) |
constexpr basic_string_view(const basic_string_view& other) noexcept = default; |
(2) | (desde C++17) |
constexpr basic_string_view(const CharT* s, size_type count); |
(3) | (desde C++17) |
constexpr basic_string_view(const CharT* s); |
(4) | (desde C++17) |
template<typename It, typename End> constexpr basic_string_view(It first, End last); |
(5) | (desde C++20) |
1) Constructor por defecto. Construye una vista sobre cadena vacía (
basic_string_view). Después de la construcción, data() es igual a nullptr, y size() es igual a 0.2) Constructor de copia. Construye una vista sobre cadena con el mismo contenido que
other. Después de la construcción, data() es igual a other.data(), y size() es igual a other.size().3) Construye una vista sobre cadena de los primeros
count caracteres del array de caracteres iniciando con el elemento al que apunta s. s puede contener caracteres nulos. El comportamiento es indefinido si [s, s+count) no es un rango válido (aun cuando el constructor no pueda acceder a ninguno de los elementos de este rango). Después de la construcción, data() es igual a s, and size() es igual a count.4) Construye una vista sobre cadena a partir de la cadena terminada en nulo a la que apunta
s, no incluyendo el caracter terminador nulo. La longitud de la vista se determina como si fuera mediante Traits::length(s). El comportamiento es indefinido si [s, s+Traits::length(s)) no es un rango válido. Después de la construcción, data() es igual a s, y size() es igual a Traits::length(s).5) Construye una vista sobre cadena (
basic_string_view) sobre el rango [first, last). El comportamiento es indefinido si [first, last) no es un rango válido, si It en realidad no modela a contiguous_iterator, o si End en realidad no modela a sized_sentinel_for para It. Después de la construcción, data() es igual a std::to_address(first), y size() es igual a last - first.
Esta sobrecarga solo participa en la resolución de sobrecargas si
Itsatisface acontiguous_iterator,Endsatisface asized_sentinel_forparaIt,std::iter_value_t<It>yCharTson el mismo tipo, yEndno es convertible a std::size_t.
Parámetros
| other | - | Otra vista con la cual inicializar la vista sobre cadena. |
| s | - | Puntero a un array de caracteres o a una cadena estilo C con la cual inicializar la vista sobre cadena. |
| count | - | El número de caracteres a incluir en la vista sobre cadena. |
| first | - | Iterador al primer carácter de la secuencia. |
| last | - | Iterador al último carácter de la secuencia más uno u otro centinela. |
Complejidad
1-3,5) Constante.
4) Lineal en la longitud de
s.Ejemplo
Ejecuta este código
#include <iostream>
#include <string>
#include <string_view>
int main()
{
std::wstring_view wcstr_v = L"xyzzy";
char array[3] = {'B', 'a', 'r'};
std::string_view array_v(array, std::size(array));
std::string cppstr = "Foo";
std::string_view cppstr_v(cppstr);
std::cout << cppstr_v << '\n'
<< array_v << '\n'
<< wcstr_v.size() << '\n';
}
Salida:
Foo
Bar
5
Véase también
| Asigna una vista. (función miembro pública) |