From cppreference.com
constexprvoidremove_prefix(size_typen);(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
, a
occurs.
If the implementation is not hardened, the behavior is undefined.
(since C++26)Parameters
n - number of characters to remove from the start of the view Complexity
Constant.
Example
Run this code
#include<algorithm>#include<iostream>#include<string_view>usingnamespacestd::literals;[[nodiscard("a pure function")]]constexprstd::size_tcount_substrings(std::string_viewhive,conststd::string_viewbee){if(hive.empty()||bee.empty())return0U;std::size_tbuzz{};while(bee.size()<=hive.size()){constautopos=hive.find(bee);if(pos==hive.npos)break;++buzz;hive.remove_prefix(pos+bee.size());}returnbuzz;}intmain(){std::stringstr=" trim me";std::string_viewv=str;v.remove_prefix(std::min(v.find_first_not_of(" "),v.size()));std::cout<<"String: '"<<str<<"'\n"<<"View : '"<<v<<"'\n";constexprautohive{"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. See also