Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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_viewwstring_viewu16string_viewu32string_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_viewverwendet. 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;
Parameters
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_viewfür Elemente vom Typchar -
wstring_viewfürwchar_t -
u16string_viewfürchar16_t -
u32string_viewfürchar32_t.
Traits
Wird standardmäßig auf char_traits<CharType> festgelegt.
Constructors
| Constructor | Description |
|---|---|
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
| Type name | Description |
|---|---|
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; |
Member operators
| Operator | Description |
|---|---|
operator= |
Weist einem anderen basic_string_viewObjekt ein basic_string_view oder ein konvertierbares Zeichenfolgenobjekt zu. |
operator[] |
Gibt das Element am angegebenen Index zurück. |
Member functions
| Member function | Description |
|---|---|
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_views 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_viewElement 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. |
Remarks
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_errorausgelöst wird.
Requirements
/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;
Parameters
offset
Der Index des elements, auf das verwiesen werden soll.
Return value
A const_reference bis zum Zeichen an der position, die durch den Parameterindex angegeben wird.
Remarks
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 - 1indiziert 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[].
Example
// 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;
Return value
A const_reference bis zum letzten Element in der basic_string_view.
Remarks
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.
Example
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);
Parameters
str
Der Zeiger auf die Zeichenwerte.
len
Die Anzahl der Zeichen, die in die Ansicht eingeschlossen werden sollen.
Remarks
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;
Return value
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;
Return value
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;
Return value
Gibt einen const-Random-Access-Iterator zurück, der auf eine Position unmittelbar hinter dem Ende des Bereichs verweist.
Remarks
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;
Parameters
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_viewverglichen werden soll.
Return value
- Ein negativer Wert, wenn dies
basic_string_viewkleiner alsstrvoderptr - Null, wenn die beiden Zeichenfolgen gleich sind
- Ein positiver Wert, wenn dies
basic_string_viewgrößer alsstrvoder höher istptr
Remarks
Die compare Memberfunktionen führen einen Vergleich zwischen Groß- und Kleinschreibung für alle oder einen Teil jeder Zeichensequenz durch.
Example
// 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;
Parameters
ptr
Das Zielzeichenarray, in das die Elemente kopiert werden sollen.
count
Die Anzahl der Zeichen, die aus der Quelle basic_string_viewkopiert werden sollen.
offset
Die Anfangsposition in der Quelle basic_string_view , aus der Kopien erstellt werden sollen.
Return value
Die Anzahl von kopierten Zeichen.
Remarks
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;
Parameters
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.
Return value
Die Anzahl von kopierten Zeichen.
Remarks
Am Ende der Kopie wird kein Nullzeichen angefügt.
For more information, see 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;
Return value
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;
Return value
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_viewObjekts verwendet wurde.
constexpr value_type *data() const noexcept;
Return value
Ein Zeiger-zu-Konst auf das erste Element der Zeichensequenz.
Remarks
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;
Return value
true wenn das basic_string_view Objekt keine Zeichen enthält; false wenn es mindestens ein Zeichen enthält.
Remarks
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;
Return value
Gibt einen zufälligen Zugriff zurück const_iterator , der auf eins über das letzte Element verweist.
Remarks
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;
Parameters
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.
Return value
true wenn die Zeichenfolgenansicht mit dem angegebenen Suffix endet; false sonst.
Remarks
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.
Example
// Requires /std:c++20 or later
#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;
Parameters
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.
Return value
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;
Parameters
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.
Return value
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_viewElements 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;
Parameters
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.
Return value
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_viewElements 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;
Parameters
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.
Return value
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_viewElements 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;
Parameters
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.
Return value
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;
Return value
A const_reference bis zum ersten Element.
Remarks
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;
Remarks
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;
Return value
Die maximale Anzahl von Zeichen, die ein basic_string_view Zeichen enthalten kann.
Remarks
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_viewObjekt ein basic_string_view oder ein konvertierbares Zeichenfolgenobjekt zu.
constexpr basic_string_view& operator=(const basic_string_view&) noexcept = default;
Example
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;
Parameters
offset
Der Index des elements, auf das verwiesen werden soll.
Return value
A const_reference bis zum Zeichen an der position, die durch den Parameterindex angegeben wird.
Remarks
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-1indiziert.
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 For more information, see Checked Iterators.
basic_string_view::rbegin
Gibt einen const Iterator an das erste Element in einem umgekehrten basic_string_viewElement zurück.
constexpr const_reverse_iterator rbegin() const noexcept;
Return value
Gibt einen Iterator für zufälligen Zugriff auf das erste Element in einem umgekehrten basic_string_viewElement zurück, das angibt, was das letzte Element im entsprechenden unreversierten basic_string_viewist.
Remarks
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);
Remarks
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);
Remarks
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_viewElement zeigt.
constexpr reverse_iterator rend() const noexcept;
Return value
Ein umgekehrter const Iterator für den zufälligen Zugriff, der auf eins über das letzte Element in einem umgekehrten basic_string_viewElement zeigt.
Remarks
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_viewerreicht 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;
Parameters
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.
Return value
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;
Return value
Die Länge der basic_string_view.
Remarks
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;
Parameters
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_stringZeichenfolgenansicht übergeben, die in eine Zeichenfolgenansicht konvertiert wird.
x
Null-beendete Zeichenfolge mit dem Präfix, nach dem gesucht werden soll.
Return value
true wenn die Zeichenfolge mit dem angegebenen Präfix beginnt; false sonst.
Remarks
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.
Example
// Requires /std:c++20 or later
#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;
Parameters
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.
Return value
Ein basic_string_view Objekt, das die angegebene Untermenge von Elementen darstellt.
basic_string_view::swap
Tauscht zwei basic_string_viewZeichen, d. h. die Zeiger auf die zugrunde liegenden Zeichenfolgendaten und die Größenwerte.
constexpr void swap(basic_string_view& sv) noexcept;
Parameters
sv
Die Quelle basic_string_view , deren Zeiger- und Größenwerte mit der des Ziels basic_string_viewausgetauscht werden sollen.
See also
<string_view>
Threadsicherheit in der C++-Standardbibliothek