Namespaces
Variants

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

From cppreference.net
constexpr void remove_prefix ( size_type n ) ;
(C++17부터)

뷰의 시작 지점을 n 문자만큼 앞으로 이동합니다.

만약 n > size ( ) true 이면, 동작은 정의되지 않습니다.

(C++26 이전)

만약 n > size ( ) true 이면:

  • 구현이 hardened 된 경우, contract violation 이 발생합니다. 또한 계약 위반 핸들러가 "observe" 평가 의미론 하에 반환되면, 동작은 정의되지 않습니다.
  • 구현이 hardened되지 않은 경우, 동작은 정의되지 않습니다.
(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.

참고 항목

끝을 뒤로 이동하여 뷰를 축소합니다
(public member function)