Spec-Zone.ru › C++

std::basic_string<CharT,Traits,Allocator>::subview

constexpr std::basic_string_view<CharT, Traits> subview( size_type pos = 0,
                                                         size_type count = npos ) const;
(начиная с C++26)

Возвращает представление подстроки [pos, pos + rlen), где rlen — меньшее из count и size() - pos.

Эквивалентно return std::basic_string_view<CharT, Traits>(*this).subview(pos, count);.

Параметры

pos - позиция первого включаемого символа
count - длина подпредставления

Возвращаемое значение

Представление подстроки [pos, pos + rlen).

Исключения

std::out_of_range, если pos > size().

Сложность

Постоянная.

Примечания

Макрос проверки наличия возможностей Значение Стандарт Возможность
__cpp_lib_string_subview 202506L (C++26) std::basic_string::subview, std::basic_string_view::subview

Пример

#include <cassert>
#include <iostream>
#include <string>
#include <string_view>

int main()
{
    const std::string s{"Life is life!"};
    assert(s.subview(5) == "is life!");
    assert(s.subview(5, 13) == "is life!");
    assert(s.subview(5, 2) == "is");

    try
    {
        // pos is out of bounds, throws
        const auto pos{s.length() + 13};
        [[maybe_unused]] auto x_x{s.subview(pos)};
    }
    catch (const std::out_of_range& ex)
    {
        std::cout << "Exception: " << ex.what() << '\n';
    }
}

Возможный вывод:

Exception: basic_string_view::substr: __pos (which is 26) > __size (which is 13)

См. также

substr
возвращает подстроку
(открытая функция-член)
subview
(C++26)
возвращает подпредставление
(открытая функция-член std::basic_string_view<CharT,Traits>)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/string/basic_string/subview

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API