STL C++: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(→Vector) |
|||
Zeile 95: | Zeile 95: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== | == vector == | ||
* | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
std::vector<int> vec = {1,2,3,4,5}; | std::vector<int> vec = {1,2,3,4,5}; | ||
Zeile 103: | Zeile 104: | ||
std::cout << '\n'; | std::cout << '\n'; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== deque == | |||
* Aufwand einfügen vorn oder hinten ist gleich. | |||
* Funktionalität wie Vector | |||
== list == | |||
Doppelt verkettete Liste: Einfügen an jeder Stelle mit konstantem Aufwand. | |||
== forward_list == | |||
Einfach verkettete Liste: Einfügen an jeder Stelle mit konstantem Aufwand. | |||
== stack == | |||
* Last in first out | |||
* Implementiert mit vector, deque und list | |||
Funktionen: | |||
* empty() | |||
* size() | |||
* top() | |||
* push() | |||
* emplace | |||
* pop() | |||
* swap() | |||
== Map == | |||
== RegExpr == | == RegExpr == | ||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
</syntaxhighlight> | </syntaxhighlight> |
Version vom 8. Dezember 2022, 17:12 Uhr
Links
Container
Beispiele: vector, string
Zugriff/Manipulation
- size_t length() Aktuelle Länge
- size_t capacity() Liefert aktuell Puffergröße
- void resize(size_t newLen, [char cc = '\0']) Setzt Länge durch Kürzen oder Auffüllen mit cc
- reserve(size_t newSize): Setzt Kapazität
- clear() Kürzt auf 0
- bool empty() Test auf Leerstring
- T & back() Letztes Element
- T & front() erstes Element
- append(data)
- push_back(T cc) Element anfügen
- T pop_back() Letztes Element entfernen und zurückgeben
- insert(size_t pos, data)
- emplace(size_t pos, T item) ein Element einfügen
- emplace_back(T item) ein Element anhängen
- iterator erase(size_t pos, size_t len) Löschen
- iterator erase(iterator begin, iterator end) Löschen
Finden und Ersetzen
- replace(pos, len, data)
- size_t find(data) Substring finden
- size_t rfind(data) Von hinten Substring finden
- find_first_of(T item)
- find_last_of(T item)
Iteratoren:
- begin
- end
- rbegin Vom Ende her
- rend
- cbegin Ein const-Iterator
- cend
- crbegin
- crend
#include <vector>
std::vector v;
for (auto rit=v.rbegin(); rit!=v.rend(); ++rit){
std::cout << *rit;
}
for (auto it=v.begin(); it!=v.end(); ++it)[
std::cout << *it;
}
for ( auto it=v.cbegin(); it!=v.cend(); ++it){
std::cout << *it;
}
String
Konstruktoren:
- string() https://cplusplus.com/reference/string/string/string/
- string(data)
- string(int count, char c)
Zugriff/Manipulation (außer Standard von Containern):
- int compare(data) Vergleich: <0 0 >0 https://cplusplus.com/reference/string/string/compare/
- string substr(size_t pos, size_t len) Teilstring erstellen
- char& at(int position) Liefert Zeichen von Position
- char& back() Letztes Zeichen
- char& front() erstes Zeichen
Finden und Ersetzen
- replace(pos, len, data) https://cplusplus.com/reference/string/string/replace/
- size_t find(data) Substring finden https://cplusplus.com/reference/string/string/find/
- size_t rfind(data) Von hinten Substring finden
- find_first_of(char cc)
- find_last_of(char cc)
Konvertierung
- int stoi() Wandlung in int
- const char* c_str() C-String
- string to_string(NUMERIC val) int, long, ... long double in String wandeln https://cplusplus.com/reference/string/to_string/
#include <string>
std::string s;
for (auto rit=str.rbegin(); rit!=str.rend(); ++rit){
std::cout << *rit;
}
for (auto it=str.begin(); it!=str.end(); ++it)[
std::cout << *it;
}
for ( auto it=str.cbegin(); it!=str.cend(); ++it){
std::cout << *it;
}
vector
std::vector<int> vec = {1,2,3,4,5};
std::cout << "vec backwards:";
for (auto rit = vec.crbegin(); rit != vec.crend(); ++rit)
std::cout << ' ' << *rit;
std::cout << '\n';
deque
- Aufwand einfügen vorn oder hinten ist gleich.
- Funktionalität wie Vector
list
Doppelt verkettete Liste: Einfügen an jeder Stelle mit konstantem Aufwand.
forward_list
Einfach verkettete Liste: Einfügen an jeder Stelle mit konstantem Aufwand.
stack
- Last in first out
- Implementiert mit vector, deque und list
Funktionen:
- empty()
- size()
- top()
- push()
- emplace
- pop()
- swap()