std::basic_string_view<CharT,Traits>::basic_string_view
Материал из cppreference.com
<tbody>
</tbody>
constexpr basic_string_view() noexcept; |
(1) | (начиная с C++17) |
constexpr basic_string_view(const basic_string_view& other) noexcept = default; |
(2) | (начиная с C++17) |
constexpr basic_string_view(const CharT* s, size_type count); |
(3) | (начиная с C++17) |
constexpr basic_string_view(const CharT* s); |
(4) | (начиная с C++17) |
1) Конструктор по-умолчанию. Конструирует пустой
basic_string_view. После создания data() равен nullptr, а size() равен 0.2) Конструктор копирования. Конструирует строковое представление из
other. После создания data() равен other.data(), а size() равен other.size().3) Конструирует строковое представление из первых
count символов массива, которые начинаются с s. s может содержать \0 символы. Поведение не определено, если [s, s+count) недействительный диапазон (даже если конструктор не может получить доступ ни к одному жлементу из этого диапазона). После создания data() равен s, а size() равен count.4) Конструирует строковое представление
s, заканчивающееся \0, не включая завершающий \0 символ. Длина представления зависит от Traits::length(s). Поведение не определено, если [s, s+Traits::length(s)) не действительный диапазон. После создания, data() равен s, а size() равен Traits::length(s).Параметры
| other | — | другое строковое представление для инициализации строкового представления |
| s | — | указатель на массив символов или на Си-строку для инициализации строкового представления |
| count | — | число символов для включения в строковое представление |
Сложность
1-3) Константная
4) Линейная, зависит от длины
sПример
Запустить этот код
#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';
}
Вывод:
Foo
Bar
5
Смотри также
(C++17) |
присваивает представлению (public функция-элемент) |