Namespaces
Variants
Actions

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

From cppreference.com
 
 
 
std::basic_string_view
 
constexpr void remove_prefix( size_type n );
(since C++17)

Moves the start of the view forward by n characters.

If n > size() is true, the behavior is undefined.

(until C++26)

If n > size() is true:

  • If the implementation is hardened, a contract violation occurs. Moreover, if the contract-violation handler returns under "observe" evaluation semantic, the behavior is undefined.
  • If the implementation is not hardened, the behavior is undefined.
(since C++26)

[edit] Parameters

n - number of characters to remove from the start of the view

[edit] Complexity

Constant.

[edit] Example

Run this code
#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";
}

Output:

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

[edit] See also

shrinks the view by moving its end backward
(public member function) [edit]
Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string_view/remove_prefix&oldid=182332"

AltStyle によって変換されたページ (->オリジナル) /