STL C++: Unterschied zwischen den Versionen

Aus Info-Theke
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „= Links = * C-plus-plus = Container = Beispiele: vector, string Zugriff/Manipulation * size_t length() Aktuelle Länge * size_t capacity() Liefert aktuel…“)
 
Zeile 29: Zeile 29:
* find_first_of(T item)
* find_first_of(T item)
* find_last_of(T item)
* find_last_of(T item)
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/


Iteratoren:
Iteratoren:
Zeile 58: Zeile 53:
     std::cout << *it;
     std::cout << *it;
}
}
</syntaxhighlight>
== 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/
<syntaxhighlight lang="c++">
#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;
}
</syntaxhighlight>
== Vector ==
<syntaxhighlight lang="c++">
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';
</syntaxhighlight>
== RegExpr ==
<syntaxhighlight lang="c++">
</syntaxhighlight>
</syntaxhighlight>

Version vom 8. Dezember 2022, 17:01 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:

Zugriff/Manipulation (außer Standard von Containern):

  • char& at(int position) Liefert Zeichen von Position
  • char& back() Letztes Zeichen
  • char& front() erstes Zeichen

Finden und Ersetzen

Konvertierung

#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';

RegExpr