Spec-Zone.ru › C++

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

constexpr void remove_prefix( size_type n );
(начиная с C++17)

Сдвигает начало представления вперёд на n символов.

Если n > size() равно true, поведение не определено.

(до C++26)

Если n > size() равно true:

  • Если реализация усилена проверками, происходит нарушение контракта.
  • Если реализация не усилена проверками, поведение не определено.
(начиная с C++26)

Параметры

n - количество символов, удаляемых из начала представления

Сложность

Константная.

Пример

#include <algorithm>
#include <iostream>
#include <string_view>

using namespace std::literals;

[[nodiscard("a pure function")]]
constexpr std::size_t count_substrings(std::string_view hive, const std::string_view bee)
{
    if (hive.empty() || bee.empty())
        return 0U;
    
    std::size_t buzz{};
    while (bee.size() <= hive.size())
    {
        const auto pos = hive.find(bee);
        if (pos == hive.npos)
            break;
        ++buzz;
        hive.remove_prefix(pos + bee.size());
    }
    return buzz;
}

int main()
{
    std::string str = "   trim me";
    std::string_view v = str;
    v.remove_prefix(std::min(v.find_first_not_of(" "), v.size()));
    std::cout << "String: '" << str << "'\n"
              << "View  : '" << v << "'\n";
    
    constexpr auto hive{"bee buzz bee buzz bee"};
    std::cout << "There are " << count_substrings(hive, "bee") << " bees in this hive.\n";
}

Вывод:

String: '   trim me'
View  : 'trim me'
There are 3 bees in this hive.

См. также

remove_suffix
уменьшает представление, сдвигая его конец назад
(открытая функция-член)

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

Spec-Zone.ru

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