basic_string_view
-Klasse
Die Klassenvorlage basic_string_view<charT>
wurde in C++17 hinzugefügt, um als sichere und effiziente Methode für eine Funktion zu dienen, um verschiedene nicht verwandte Zeichenfolgentypen zu akzeptieren, ohne dass die Funktion für diese Typen templatiert werden muss. Die Klasse enthält einen nicht eigenen Zeiger auf eine zusammenhängende Abfolge von Zeichendaten und eine Länge, die die Anzahl der Zeichen in der Sequenz angibt. Es wird keine Annahme davon ausgegangen, ob die Sequenz null-beendet ist.
Die Standardbibliothek definiert mehrere Spezialisierungen basierend auf dem Typ der Elemente:
string_view
wstring_view
u16string_view
u32string_view
A basic_string_view
beschreibt die zum Lesen von Zeichenfolgendaten erforderliche Mindestschnittstelle. Sie bietet zugang zu den zugrunde liegenden Daten; es erstellt keine Kopien (mit Ausnahme der copy
Funktion). Die Daten können null Werte (\0
) an einer beliebigen Position enthalten. A basic_string_view
hat keine Kontrolle über die Lebensdauer des Objekts. Es liegt in der Verantwortung des Aufrufers, sicherzustellen, dass die zugrunde liegenden Zeichenfolgendaten gültig sind.
Eine Funktion, die einen Parameter vom Typ string_view
akzeptiert, kann zum Arbeiten mit einem beliebigen Zeichenfolgentyp erstellt werden, ohne die Funktion in eine Vorlage zu verwandeln oder die Funktion auf eine bestimmte Teilmenge von Zeichenfolgentypen zu beschränken. Die einzige Anforderung ist, dass eine implizite Konvertierung vom Zeichenfolgentyp in string_view
. Alle Standardmäßigen Zeichenfolgentypen sind implizit in einen string_view
Typ konvertierbar, der denselben Elementtyp enthält. Mit anderen Worten, eine std::string
ist in ein string_view
, aber nicht in ein wstring_view
.
Das folgende Beispiel zeigt eine Funktion f
ohne Vorlage, die einen Parameter vom Typ wstring_view
verwendet. Sie kann mit Argumenten vom Typ std::wstring
, wchar_t*
und winrt::hstring
.
// compile with: /std:c++17
// string_view that uses elements of wchar_t
void f(wstring_view);
// pass a std::wstring:
const std::wstring& s { L"Hello" };
f(s);
// pass a C-style null-terminated string (string_view is not null-terminated):
const wchar_t* ns = L"Hello";
f(ns);
// pass a C-style character array of len characters (excluding null terminator):
const wchar_t* cs { L"Hello" };
size_t len { 5 };
f({cs,len});
// pass a WinRT string
winrt::hstring hs { L"Hello" };
f(hs);
Syntax
template <class CharType, class Traits = char_traits<CharType>>
class basic_string_view;
Parameter
CharType
Der Typ der Zeichen, die in der basic_string_view
. Die C++-Standardbibliothek stellt die folgenden Typedefs für Spezialisierungen dieser Vorlage bereit.
string_view
für Elemente vom Typchar
wstring_view
fürwchar_t
u16string_view
fürchar16_t
u32string_view
fürchar32_t
.
Traits
Wird standardmäßig auf char_traits
<CharType
> festgelegt.
Konstruktoren
Konstruktor | Beschreibung |
---|---|
basic_string_view |
Erstellt ein leeres basic_string_view oder sonstiges Element, das auf die Daten eines anderen Zeichenfolgenobjekts oder auf ein Zeichenarray im C-Stil verweist. |
TypeDefs
Typname | Beschreibung |
---|---|
const_iterator |
Iterator mit wahlfreiem Zugriff, der Elemente lesen const kann. |
const_pointer |
using const_pointer = const value_type*; |
const_reference |
using const_reference = const value_type&; |
const_reverse_iterator |
using const_reverse_iterator = std::reverse_iterator<const_iterator>; |
difference_type |
using difference_type = ptrdiff_t; |
iterator |
using iterator = const_iterator; |
npos |
static constexpr size_type npos = size_type(-1); |
pointer |
using pointer = value_type*; |
reference |
using reference = value_type&; |
reverse_iterator |
using reverse_iterator = const_reverse_iterator; |
size_type |
using size_type = size_t; |
traits_type |
using traits_type = Traits; |
value_type |
using value_type = CharType; |
Memberoperatoren
Operator | Beschreibung |
---|---|
operator= |
Weist einem anderen basic_string_view Objekt ein basic_string_view oder ein konvertierbares Zeichenfolgenobjekt zu. |
operator[] |
Gibt das Element am angegebenen Index zurück. |
Memberfunktionen
Memberfunktion | Beschreibung |
---|---|
at |
Gibt ein const_reference Element an einer angegebenen Position zurück. |
back |
Gibt ein const_reference bis zum letzten Element zurück. |
begin |
Gibt einen const Iterator zurück, der das erste Element adressiert. (basic_string_view s sind unveränderlich.) |
cbegin |
Wie in begin . |
cend |
Gibt einen const Iterator zurück, der auf eins über das letzte Element zeigt. |
copy |
Kopiert höchstens eine angegebene Anzahl von Zeichen aus einer indizierten Position in einer Quelle basic_string_view in ein Zielzeichenarray. (Nicht empfohlen. Stattdessen verwenden _Copy_s .) |
_Copy_s |
Sichere CRT-Kopierfunktion. |
compare |
Vergleicht eine basic_string_view mit einem angegebenen, basic_string_view um festzustellen, ob sie gleich sind oder ob eine lexikalisch kleiner als die andere ist. |
crbegin |
Wie in rbegin . |
crend |
Wie in rend . |
data |
Gibt einen unformatierten nicht besitzenden Zeiger auf die Zeichensequenz zurück. |
empty |
Überprüft, ob die basic_string_view Zeichen enthalten. |
end |
Wie in cend . |
ends_with C++20 |
Überprüfen Sie, ob eine Zeichenfolgenansicht mit einem angegebenen Suffix endet. |
find |
Sucht in einer Vorwärtsrichtung nach dem ersten Vorkommen einer Teilzeichenfolge, die einer angegebenen Abfolge von Zeichen entspricht. |
find_first_not_of |
Sucht nach dem ersten Zeichen, das kein Element eines angegebenen basic_string_view oder konvertierbaren Zeichenfolgenobjekts ist. |
find_first_of |
Sucht nach dem ersten Zeichen, das einem Element eines angegebenen basic_string_view oder konvertierbaren Zeichenfolgenobjekts entspricht. |
find_last_not_of |
Sucht nach dem letzten Zeichen, das kein Element eines angegebenen basic_string_view oder konvertierbaren Zeichenfolgenobjekts ist. |
find_last_of |
Sucht nach dem letzten Zeichen, das ein Element eines angegebenen basic_string_view oder konvertierbaren Zeichenfolgenobjekts ist. |
front |
Gibt eins const_reference an das erste Element zurück. |
length |
Gibt die aktuelle Anzahl von Elementen zurück. |
max_size |
Gibt die maximale Anzahl von Zeichen zurück, die ein basic_string_view Zeichen enthalten kann. |
rbegin |
Gibt einen const Iterator zurück, der das erste Element in einem umgekehrten Element adressiert basic_string_view . |
remove_prefix |
Verschiebt den Zeiger um die angegebene Anzahl von Elementen vorwärts. |
remove_suffix |
Reduziert die Größe der Ansicht um die angegebene Anzahl von Elementen, die von hinten beginnen. |
rend |
Gibt einen const Iterator zurück, der auf eins über das letzte Element in einem umgekehrten basic_string_view Element zeigt. |
rfind |
Sucht in umgekehrter basic_string_view Reihenfolge nach dem ersten Vorkommen einer Teilzeichenfolge, die einer angegebenen Abfolge von Zeichen entspricht. |
size |
Gibt die aktuelle Anzahl von Elementen zurück. |
starts_with C++20 |
Überprüfen Sie, ob eine Zeichenfolgenansicht mit einem bestimmten Präfix beginnt. |
substr |
Gibt eine Teilzeichenfolge einer angegebenen Länge ab einem angegebenen Index zurück. |
swap |
Tauschen Sie den Inhalt von zwei basic_string_view Objekten aus. |
Hinweise
Wenn eine Funktion aufgefordert wird, eine Sequenz zu generieren, die länger als max_size
Elemente ist, meldet die Funktion einen Längenfehler, indem ein Objekt vom Typ length_error
ausgelöst wird.
Anforderungen
std:c++17
oder höher.
Header: <string_view>
Namespace:std
basic_string_view::at
Gibt ein const_reference
Zeichen am angegebenen nullbasierten Index zurück.
constexpr const_reference at(size_type offset) const;
Parameter
offset
Der Index des elements, auf das verwiesen werden soll.
Rückgabewert
A const_reference
bis zum Zeichen an der position, die durch den Parameterindex angegeben wird.
Hinweise
Das erste Element weist einen Index von Null auf, und die folgenden Elemente werden fortlaufend von den positiven ganzen Zahlen indiziert, sodass eine basic_string_view
Länge n
ein *n
*-th-Element mit der Zahl n - 1
indiziert hat. at
löst eine Ausnahme für ungültige Indizes aus, anders als operator[]
.
Im Allgemeinen wird empfohlen, dass at
Sequenzen wie std::vector
z. B. niemals basic_string_view
verwendet werden sollten. Ein ungültiger Index, der an eine Sequenz übergeben wird, ist ein Logikfehler, der während der Entwicklung erkannt und behoben werden soll. Wenn ein Programm nicht sicher ist, dass seine Indizes gültig sind, sollte es sie testen, nicht aufrufen und sich auf Ausnahmen verlassen, um sich gegen die unerlässige at()
Programmierung zu verteidigen.
Weitere Informationen finden Sie unter basic_string_view::operator[]
.
Beispiel
// basic_string_view_at.cpp
// compile with: /EHsc
#include <string_view>
#include <iostream>
int main()
{
using namespace std;
const string_view str1("Hello world");
string_view::const_reference refStr2 = str1.at(8); // 'r'
}
basic_string_view::back
Gibt ein const_reference
bis zum letzten Element zurück.
constexpr const_reference back() const;
Rückgabewert
A const_reference
bis zum letzten Element in der basic_string_view
.
Hinweise
Löst eine Ausnahme aus, wenn dies basic_string_view
leer ist.
Denken Sie daran, dass nach einer basic_string_view
Änderung, z. B. durch Aufrufen remove_suffix
, das von dieser Funktion zurückgegebene Element nicht mehr das letzte Element in den zugrunde liegenden Daten ist.
Beispiel
Ein string_view
mit einem C-Zeichenfolgenliteral erstelltes Zeichenfolgenliteral enthält nicht den endierenden Nullwert. Im folgenden Beispiel back
wird also zurückgegeben 'p'
und nicht '\0'
.
char c[] = "Help"; // char[5]
string_view sv{ c };
cout << sv.size(); // size() == 4
cout << sv.back() << endl; // p
Eingebettete Nullen werden als jedes andere Zeichen behandelt:
string_view e = "embedded\0nulls"sv;
cout << boolalpha << (e.back() == 's'); // true
basic_string_view::basic_string_view
Erstellt ein Objekt vom Typ basic_string_view
.
constexpr basic_string_view() noexcept;
constexpr basic_string_view(const basic_string_view&) noexcept = default;
constexpr basic_string_view(const charT* str);
constexpr basic_string_view(const charT* str, size_type len);
Parameter
str
Der Zeiger auf die Zeichenwerte.
len
Die Anzahl der Zeichen, die in die Ansicht eingeschlossen werden sollen.
Hinweise
Die Konstruktoren mit einem charT*
Parameter gehen davon aus, dass die Eingabe null-beendet ist, die Beendigung null jedoch nicht in der basic_string_view
.
Sie können auch ein basic_string_view
Literal erstellen. Siehe operator"" sv
.
basic_string_view::begin
Wie in cbegin
.
constexpr const_iterator begin() const noexcept;
Rückgabewert
Gibt eine const_iterator
Adressierung des ersten Elements zurück.
basic_string_view::cbegin
Gibt ein const_iterator
, das das erste Element im Bereich adressieren soll.
constexpr const_iterator cbegin() const noexcept;
Rückgabewert
Ein const
-Random-Access-Iterator, der auf das erste Element des Bereichs zeigt oder die Position direkt hinter dem Ende eines leeren Bereichs (für einen leeren Bereich gilt cbegin() == cend()
).
basic_string_view::cend
Gibt einen const_iterator
Wert zurück, der die Position direkt über das letzte Element in einem Bereich adressieren soll.
constexpr const_iterator cend() const noexcept;
Rückgabewert
Gibt einen const
-Random-Access-Iterator zurück, der auf eine Position unmittelbar hinter dem Ende des Bereichs verweist.
Hinweise
Der zurückgegebene cend
Wert sollte nicht abgeleitet werden.
basic_string_view::compare
Führt einen Vergleich zwischen Groß- und Kleinschreibung mit einem angegebenen basic_string_view
(oder einem konvertierbaren Zeichenfolgentyp) durch, um festzustellen, ob die beiden Objekte gleich sind oder ob eins lexikalisch kleiner als der andere ist. Die <string_view>
Operatoren verwenden diese Memberfunktion, um Vergleiche zu erledigen.
constexpr int compare(basic_string_view strv) const noexcept;
constexpr int compare(size_type pos, size_type num, basic_string_view strv) const;
constexpr int compare(size_type pos, size_type num, basic_string_view strv, size_type offset, size_type num2) const;
constexpr int compare(const charT* ptr) const;
constexpr int compare(size_type pos, size_type num, const charT* ptr) const;
constexpr int compare(size_type pos, size_type num, const charT* ptr, size_type num2) const;
Parameter
strv
Das basic_string_view
ist zu vergleichen.basic_string_view
pos
Der Index, basic_string_view
an dem der Vergleich beginnt.
num
Die maximale Anzahl von Zeichen davon basic_string_view
, die verglichen werden sollen.
num2
Die maximale Anzahl von Zeichen, die verglichen strv
werden sollen.
offset
Der Index, an strv
dem der Vergleich beginnt.
ptr
Die C-Zeichenfolge, die mit dieser basic_string_view
verglichen werden soll.
Rückgabewert
- Ein negativer Wert, wenn dies
basic_string_view
kleiner alsstrv
oderptr
- Null, wenn die beiden Zeichenfolgen gleich sind
- Ein positiver Wert, wenn dies
basic_string_view
größer alsstrv
oder höher istptr
Hinweise
Die compare
Memberfunktionen führen einen Vergleich zwischen Groß- und Kleinschreibung für alle oder einen Teil jeder Zeichensequenz durch.
Beispiel
// basic_string_view_compare.cpp
// compile with: /EHsc
#include <string_view>
#include <iostream>
#include <string>
using namespace std;
string to_alpha(int result)
{
if (result < 0) return " less than ";
else if (result == 0) return " equal to ";
else return " greater than ";
}
int main()
{
// The first member function compares
// two string_views
string_view sv_A("CAB");
string_view sv_B("CAB");
cout << "sv_A is " << sv_A << endl;
cout << "sv_B is " << sv_B << endl;
int comp1 = sv_A.compare(sv_B);
cout << "sv_A is" << to_alpha(comp1) << "sv_B.\n";
// The second member function compares part of
// an operand string_view to another string_view
string_view sv_C("AACAB");
string_view sv_D("CAB");
cout << "sv_C is: " << sv_C << endl;
cout << "sv_D is: " << sv_D << endl;
int comp2a = sv_C.compare(2, 3, sv_D);
cout << "The last three characters of sv_C are"
<< to_alpha(comp2a) << "sv_D.\n";
int comp2b = sv_C.compare(0, 3, sv_D);
cout << "The first three characters of sv_C are"
<< to_alpha(comp2b) << "sv_D.\n";
// The third member function compares part of
// an operand string_view to part of another string_view
string_view sv_E("AACAB");
string_view sv_F("DCABD");
cout << "sv_E: " << sv_E << endl;
cout << "sv_F is: " << sv_F << endl;
int comp3a = sv_E.compare(2, 3, sv_F, 1, 3);
cout << "The three characters from position 2 of sv_E are"
<< to_alpha(comp3a)
<< "the 3 characters of sv_F from position 1.\n";
// The fourth member function compares
// an operand string_view to a C string
string_view sv_G("ABC");
const char* cs_A = "DEF";
cout << "sv_G is: " << sv_G << endl;
cout << "cs_A is: " << cs_A << endl;
int comp4a = sv_G.compare(cs_A);
cout << "sv_G is" << to_alpha(comp4a) << "cs_A.\n";
// The fifth member function compares part of
// an operand string_view to a C string
string_view sv_H("AACAB");
const char* cs_B = "CAB";
cout << "sv_H is: " << sv_H << endl;
cout << "cs_B is: " << cs_B << endl;
int comp5a = sv_H.compare(2, 3, cs_B);
cout << "The last three characters of sv_H are"
<< to_alpha(comp5a) << "cs_B.\n";
// The sixth member function compares part of
// an operand string_view to part of an equal length of
// a C string
string_view sv_I("AACAB");
const char* cs_C = "ACAB";
cout << "sv_I is: " << sv_I << endl;
cout << "cs_C: " << cs_C << endl;
int comp6a = sv_I.compare(1, 3, cs_C, 3);
cout << "The 3 characters from position 1 of sv_I are"
<< to_alpha(comp6a) << "the first 3 characters of cs_C.\n";
}
sv_A is CAB
sv_B is CAB
sv_A is equal to sv_B.
sv_C is: AACAB
sv_D is: CAB
The last three characters of sv_C are equal to sv_D.
The first three characters of sv_C are less than sv_D.
sv_E: AACAB
sv_F is: DCABD
The three characters from position 2 of sv_E are equal to the 3 characters of sv_F from position 1.
sv_G is: ABC
cs_A is: DEF
sv_G is less than cs_A.
sv_H is: AACAB
cs_B is: CAB
The last three characters of sv_H are equal to cs_B.
sv_I is: AACAB
cs_C: ACAB
The 3 characters from position 1 of sv_I are equal to the first 3 characters of cs_C.
basic_string_view::copy
Kopiert höchstens eine angegebene Anzahl von Zeichen aus einer indizierten Position in einer Quelle basic_string_view
in ein Zielzeichenarray. Es wird empfohlen, stattdessen die sichere Funktion basic_string_view::_Copy_s
zu verwenden.
size_type copy(charT* ptr, size_type count, size_type offset = 0) const;
Parameter
ptr
Das Zielzeichenarray, in das die Elemente kopiert werden sollen.
count
Die Anzahl der Zeichen, die aus der Quelle basic_string_view
kopiert werden sollen.
offset
Die Anfangsposition in der Quelle basic_string_view
, aus der Kopien erstellt werden sollen.
Rückgabewert
Die Anzahl von kopierten Zeichen.
Hinweise
Am Ende der Kopie wird kein Nullzeichen angefügt.
basic_string_view::_Copy_s
Secure CRT copy function to be used instead of copy
.
size_type _Copy_s(
value_type* dest,
size_type dest_size,
size_type count,
size_type _Off = 0) const;
Parameter
dest
Das Zielzeichenarray, in das die Elemente kopiert werden sollen.
dest_size
Die Größe des dest
.
count
Die Anzahl der Zeichen, die höchstens aus der Quellzeichenfolge kopiert werden sollen.
_Off
Die Anfangsposition in der Quellzeichenfolge, ab der Kopien erstellt werden dürfen.
Rückgabewert
Die Anzahl von kopierten Zeichen.
Hinweise
Am Ende der Kopie wird kein Nullzeichen angefügt.
Weitere Informationen finden Sie unter c-runtime-library/security-features-in-the-crt.
basic_string_view::crbegin
Gibt ein const_reverse_iterator
, das das erste Element in einem umgekehrten Element adressiert basic_string_view
.
constexpr const_reverse_iterator crbegin() const noexcept;
Rückgabewert
A const_reverse_iterator
that addresses the first element in a reversed basic_string_view
.
basic_string_view::crend
Wie in rend
.
constexpr const_reverse_iterator crend() const noexcept;
Rückgabewert
Gibt einen const_reverse_iterator
Wert zurück, der das Ende eines umgekehrten Werts angibt basic_string_view
.
basic_string_view::data
Gibt einen unformatierten, nicht besitzenden Zeiger auf die Konst-Zeichensequenz des Objekts zurück, das zum Erstellen des basic_string_view
Objekts verwendet wurde.
constexpr value_type *data() const noexcept;
Rückgabewert
Ein Zeiger-zu-Konst auf das erste Element der Zeichensequenz.
Hinweise
Der Zeiger kann die Zeichen nicht ändern.
Eine Abfolge von basic_string_view
Zeichen ist nicht unbedingt null-beendet. Der Rückgabetyp ist data
keine gültige C-Zeichenfolge, da kein NULL-Zeichen angefügt wird. Das Nullzeichen \0
hat keine besondere Bedeutung in einem Objekt des Typs basic_string_view
und kann ein Teil des basic_string_view
Objekts sein, genau wie jedes andere Zeichen.
basic_string_view::empty
Überprüft, ob die basic_string_view
Zeichen enthalten sind.
constexpr bool empty() const noexcept;
Rückgabewert
true
wenn das basic_string_view
Objekt keine Zeichen enthält; false
wenn es mindestens ein Zeichen enthält.
Hinweise
Die Memberfunktion entspricht size
() == 0.
basic_string_view::end
Gibt einen zufälligen Zugriff zurück const_iterator
, der auf eins über das letzte Element verweist.
constexpr const_iterator end() const noexcept;
Rückgabewert
Gibt einen zufälligen Zugriff zurück const_iterator
, der auf eins über das letzte Element verweist.
Hinweise
end
wird verwendet, um zu testen, ob ein Ende const_iterator
seines basic_string_view
. Der zurückgegebene end
Wert sollte nicht abgeleitet werden.
basic_string_view::ends_with
Überprüfen Sie, ob die Zeichenfolgenansicht mit dem angegebenen Suffix endet.
bool ends_with(const CharType c) const noexcept;
bool ends_with(const CharType* const x) const noexcept;
bool ends_with(const basic_string_view sv) const noexcept;
Parameter
c
Das einzelne Zeichensuffix, nach dem gesucht werden soll.
sv
Eine Zeichenfolgenansicht, die das Zusuffix enthält, nach dem gesucht werden soll.
Sie können ein std::basic_string
, das in ein basic_string_view
.
x
Null-beendete Zeichenfolge, die das Suffix enthält, nach dem gesucht werden soll.
Rückgabewert
true
wenn die Zeichenfolgenansicht mit dem angegebenen Suffix endet; false
sonst.
Hinweise
ends_with()
ist neu in C++20. Geben Sie die /std:c++20
Compileroption an, um sie zu verwenden.
Überprüfen Sie starts_with
, ob eine Zeichenfolgenansicht mit dem angegebenen Präfix beginnt.
Beispiel
// Requires /std:c++20 or /std:c++latest
#include <string>
#include <iostream>
int main()
{
std::cout << std::boolalpha; // so booleans show as 'true'/'false'
std::cout << std::string_view("abcdefg").ends_with('g') << '\n';
std::cout << std::string_view("abcdefg").ends_with("eFg") << '\n';
std::basic_string<char> str2 = "efg";
std::cout << std::string_view("abcdefg").ends_with(str2);
return 0;
}
true
false
true
basic_string_view::find
Durchsucht eine basic_string_view
Vorwärtsrichtung nach dem ersten Vorkommen eines Zeichens oder einer Teilzeichenfolge, die einer angegebenen Abfolge von Zeichen(n) entspricht.
constexpr size_type find(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find(const charT* ptr, size_type offset = 0) const;
Parameter
str
Die basic_string_view
Elementfunktion, nach der gesucht werden soll.
chVal
Der Zeichenwert, nach dem die Memberfunktion suchen soll.
offset
Index, bei dem die Suche beginnen soll.
ptr
Die C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
count
Die Anzahl der Zeichen in ptr
, die vom ersten Zeichen vorwärts gezählt werden.
Rückgabewert
Der Index des ersten Zeichens der Teilzeichenfolge, nach der bei Erfolg gesucht wird; andernfalls npos
.
basic_string_view::find_first_not_of
Sucht nach dem ersten Zeichen, das kein Element eines angegebenen basic_string_view
oder konvertierbaren Zeichenfolgenobjekts ist.
constexpr size_type find_first_not_of(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find_first_not_of(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find_first_not_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_first_not_of(const charT* ptr, size_type offset = 0) const;
Parameter
str
Die basic_string_view
Elementfunktion, nach der gesucht werden soll.
chVal
Der Zeichenwert, nach dem die Memberfunktion suchen soll.
offset
Index, bei dem die Suche beginnen soll.
ptr
Die C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
count
Die Anzahl der Zeichen, die vom ersten Zeichen vorwärts gezählt werden, in der C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
Rückgabewert
Der Index des ersten Zeichens der Teilzeichenfolge, nach der bei Erfolg gesucht wird; andernfalls npos
.
basic_string_view::find_first_of
Sucht nach dem ersten Zeichen, das einem Element eines angegebenen basic_string_view
Elements entspricht.
constexpr size_type find_first_of(basic_string_view str, size_type offset = 0) const noexcept;
constexpr size_type find_first_of(charT chVal, size_type offset = 0) const noexcept;
constexpr size_type find_first_of(const charT* str, size_type offset, size_type count) const;
constexpr size_type find_first_of(const charT* str, size_type offset = 0) const;
Parameter
chVal
Der Zeichenwert, nach dem die Memberfunktion suchen soll.
offset
Index, bei dem die Suche beginnen soll.
ptr
Die C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
count
Die Anzahl der Zeichen, die vom ersten Zeichen vorwärts gezählt werden, in der C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
str
Die basic_string_view
Elementfunktion, nach der gesucht werden soll.
Rückgabewert
Der Index des ersten Zeichens der Teilzeichenfolge, nach der bei Erfolg gesucht wird; andernfalls npos
.
basic_string_view::find_last_not_of
Sucht nach dem letzten Zeichen, das kein Element eines angegebenen basic_string_view
Elements ist.
constexpr size_type find_last_not_of(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type find_last_not_of(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type find_last_not_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_last_not_of(const charT* ptr, size_type offset = npos) const;
Parameter
str
Die basic_string_view
Elementfunktion, nach der gesucht werden soll.
chVal
Der Zeichenwert, nach dem die Memberfunktion suchen soll.
offset
Index, zu dem die Suche abgeschlossen werden soll.
ptr
Die C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
count
Die Anzahl der Zeichen, die vom ersten Zeichen vorwärts gezählt werden, in ptr
.
Rückgabewert
Der Index des ersten Zeichens der Teilzeichenfolge, nach der bei Erfolg gesucht wird; andernfalls string_view::npos
.
basic_string_view::find_last_of
Sucht nach dem letzten Zeichen, das einem Element eines angegebenen basic_string_view
Elements entspricht.
constexpr size_type find_last_of(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type find_last_of(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type find_last_of(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type find_last_of(const charT* ptr, size_type offset = npos) const;
Parameter
str
Die basic_string_view
Elementfunktion, nach der gesucht werden soll.
chVal
Der Zeichenwert, nach dem die Memberfunktion suchen soll.
offset
Index, zu dem die Suche abgeschlossen werden soll.
ptr
Die C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
count
Die Anzahl der Zeichen, die vom ersten Zeichen vorwärts gezählt werden, in der C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
Rückgabewert
Falls erfolgreich, der Index des letzten Zeichens der gesuchten Teilzeichenfolge, andernfalls npos
.
basic_string_view::front
Gibt eins const_reference
an das erste Element zurück.
constexpr const_reference front() const;
Rückgabewert
A const_reference
bis zum ersten Element.
Hinweise
Löst eine Ausnahme aus, wenn dies basic_string_view
leer ist.
basic_string_view::length
Gibt die aktuelle Anzahl von Elementen zurück.
constexpr size_type length() const noexcept;
Hinweise
Die Memberfunktion ist identisch mit size
.
basic_string_view::max_size
Gibt die maximale Anzahl von Zeichen zurück, die eins basic_string_view
enthalten kann.
constexpr size_type max_size() const noexcept;
Rückgabewert
Die maximale Anzahl von Zeichen, die ein basic_string_view
Zeichen enthalten kann.
Hinweise
Eine Ausnahme des Typs length_error
wird ausgelöst, wenn ein Vorgang eine basic_string_view
länge größer als max_size()
erzeugt.
basic_string_view::operator=
Weist einem anderen basic_string_view
Objekt ein basic_string_view
oder ein konvertierbares Zeichenfolgenobjekt zu.
constexpr basic_string_view& operator=(const basic_string_view&) noexcept = default;
Beispiel
string_view s = "Hello";
string_view s2 = s;
basic_string_view::operator[]
Stellt ein const_reference
Zeichen mit einem angegebenen Index bereit.
constexpr const_reference operator[](size_type offset) const;
Parameter
offset
Der Index des elements, auf das verwiesen werden soll.
Rückgabewert
A const_reference
bis zum Zeichen an der position, die durch den Parameterindex angegeben wird.
Hinweise
Das erste Element weist einen Index von Null auf, und die folgenden Elemente werden nacheinander durch die positiven ganzen Zahlen indiziert, sodass eine basic_string_view
Länge n
ein *n
*-th-Element mit der Zahl n-1
indiziert.
operator[]
ist schneller als die Memberfunktionat
, um Lesezugriff auf die Elemente einer .basic_string_view
operator[]
überprüft nicht, ob der als Argument übergebene Index gültig ist. Ein ungültiger Index, der an operator[]
ein nicht definiertes Verhalten übergeben wird.
Der zurückgegebene Verweis kann ungültig werden, wenn die zugrunde liegenden Zeichenfolgendaten durch das besitzende Objekt geändert oder gelöscht werden.
Beim Kompilieren mit _ITERATOR_DEBUG_LEVEL
dem Satz 1 oder 2 tritt ein Laufzeitfehler auf, wenn Sie versuchen, auf ein Element außerhalb der Grenzen der .basic_string_view
Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).
basic_string_view::rbegin
Gibt einen const
Iterator an das erste Element in einem umgekehrten basic_string_view
Element zurück.
constexpr const_reverse_iterator rbegin() const noexcept;
Rückgabewert
Gibt einen Iterator für zufälligen Zugriff auf das erste Element in einem umgekehrten basic_string_view
Element zurück, das angibt, was das letzte Element im entsprechenden unreversierten basic_string_view
ist.
Hinweise
rbegin
wird mit einem umgekehrten basic_string_view
verwendet, genau wie begin
bei einem basic_string_view
. rbegin
kann verwendet werden, um eine Iteration rückwärts zu initialisieren.
basic_string_view::remove_prefix
Verschiebt den Zeiger um die angegebene Anzahl von Elementen vorwärts.
constexpr void remove_prefix(size_type n);
Hinweise
Lässt die zugrunde liegenden Daten unverändert. Verschiebt den basic_string_view
Mauszeiger nach n
Elementen vorwärts und legt das element für private size
Daten auf size - n
.
basic_string_view::remove_suffix
Reduziert die Größe der Ansicht um die angegebene Anzahl von Elementen, die von hinten beginnen.
constexpr void remove_suffix(size_type n);
Hinweise
Lässt die zugrunde liegenden Daten und den Mauszeiger unverändert. Legt das Mitglied für private size
Daten auf size - n
.
basic_string_view::rend
Gibt einen const
Iterator zurück, der auf eins über das letzte Element in einem umgekehrten basic_string_view
Element zeigt.
constexpr reverse_iterator rend() const noexcept;
Rückgabewert
Ein umgekehrter const
Iterator für den zufälligen Zugriff, der auf eins über das letzte Element in einem umgekehrten basic_string_view
Element zeigt.
Hinweise
rend
wird mit einem umgekehrten basic_string_view
verwendet, genau wie end
bei einem basic_string_view
. rend
kann verwendet werden, um zu testen, ob ein Umgekehrter Iterator das Ende des Iterators basic_string_view
erreicht hat. Der zurückgegebene rend
Wert sollte nicht abgeleitet werden.
basic_string_view::rfind
Sucht in basic_string_view
umgekehrter Reihenfolge nach einer Teilzeichenfolge, die einer angegebenen Abfolge von Zeichen entspricht.
constexpr size_type rfind(basic_string_view str, size_type offset = npos) const noexcept;
constexpr size_type rfind(charT chVal, size_type offset = npos) const noexcept;
constexpr size_type rfind(const charT* ptr, size_type offset, size_type count) const;
constexpr size_type rfind(const charT* ptr, size_type offset = npos) const;
Parameter
chVal
Der Zeichenwert, nach dem die Memberfunktion suchen soll.
offset
Index, bei dem die Suche beginnen soll.
ptr
Die C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
count
Die Anzahl der Zeichen, die vom ersten Zeichen vorwärts gezählt werden, in der C-Zeichenfolge, nach der die Memberfunktion durchsucht werden soll.
str
Die basic_string_view
Elementfunktion, nach der gesucht werden soll.
Rückgabewert
Der Index des ersten Zeichens der Teilzeichenfolge bei erfolgreicher Ausführung; andernfalls npos
.
basic_string_view::size
Gibt die Anzahl von Elementen in der basic_string_view
zurück.
constexpr size_type size() const noexcept;
Rückgabewert
Die Länge der basic_string_view
.
Hinweise
A kann die Länge ändern, z. basic_string_view
B. nach remove_prefix
und remove_suffix
. Da die zugrunde liegenden Zeichenfolgendaten dadurch nicht geändert werden, ist die Größe einer basic_string_view
Zeichenfolge nicht unbedingt die Größe der zugrunde liegenden Daten.
basic_string_view::starts_with
Überprüfen Sie, ob die Zeichenfolgenansicht mit dem angegebenen Präfix beginnt.
bool starts_with(const CharType c) const noexcept;
bool starts_with(const CharType* const x) const noexcept;
bool starts_with(const basic_string_view sv) const noexcept;
Parameter
c
Das Präfix des einzelnen Zeichens, nach dem gesucht werden soll.
sv
Eine Zeichenfolgenansicht mit dem Präfix, nach dem gesucht werden soll.
Sie können eine std::basic_string
Zeichenfolgenansicht übergeben, die in eine Zeichenfolgenansicht konvertiert wird.
x
Null-beendete Zeichenfolge mit dem Präfix, nach dem gesucht werden soll.
Rückgabewert
true
wenn die Zeichenfolge mit dem angegebenen Präfix beginnt; false
sonst.
Hinweise
starts_with()
ist neu in C++20. Geben Sie die std:c++20
Compileroption an, um sie zu verwenden.
Überprüfen Sie ends_with
, ob eine Zeichenfolge mit einem Suffix endet.
Beispiel
// Requires /std:c++20 or /std:c++latest
#include <string>
#include <iostream>
int main()
{
std::cout << std::boolalpha; // so booleans show as 'true'/'false'
std::cout << std::string_view("abcdefg").starts_with('b') << '\n';
std::cout << std::string_view("abcdefg").starts_with("aBc") << '\n';
std::basic_string<char> str2 = "abc";
std::cout << std::string_view("abcdefg").starts_with(str2);
return 0;
}
false
false
true
basic_string_view::substr
Gibt eine basic_string_view
, die (höchstens) die angegebene Anzahl von Zeichen aus einer angegebenen Position darstellt.
constexpr basic_string_view substr(size_type offset = 0, size_type count = npos) const;
Parameter
offset
Ein Index, der das Element an der Position anfindt, an der die Kopie erstellt wird, mit dem Standardwert 0.
count
Die Anzahl der Zeichen, die in die Teilzeichenfolge eingeschlossen werden sollen, wenn sie vorhanden sind.
Rückgabewert
Ein basic_string_view
Objekt, das die angegebene Untermenge von Elementen darstellt.
basic_string_view::swap
Tauscht zwei basic_string_view
Zeichen, d. h. die Zeiger auf die zugrunde liegenden Zeichenfolgendaten und die Größenwerte.
constexpr void swap(basic_string_view& sv) noexcept;
Parameter
sv
Die Quelle basic_string_view
, deren Zeiger- und Größenwerte mit der des Ziels basic_string_view
ausgetauscht werden sollen.
Siehe auch
<string_view>
Threadsicherheit in der C++-Standardbibliothek