Пространства имён
Варианты
Действия

std::basic_string_view<CharT,Traits>::basic_string_view

Материал из cppreference.com
 
 
 
std::basic_string_view
Операции
Константы
Функции, не являющиеся элементами
(до C++20)(до C++20)(до C++20)(до C++20)(до C++20)(C++20)
Вспомогательные классы
Руководства по выводу (C++20)
 
<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 функция-элемент) [править]