Narzędzia użytkownika

Narzędzia witryny


opis_kontenera:string

To jest stara wersja strony!


String

Autor: Maciej Stefańczyk

Klasa string jest kontenerem przeznaczonym do przechowywania łańcuchów znaków. Stanowi pewnego rodzaju opakowanie dla tablic znaków znanych z C, zawiera także wiele funkcji przydatnych do operowania na napisach. Przy programowaniu obiektowym klasa string zastępuje używanie tabic znaków i biblioteki cstring.

Aby móc używac obiektów typu string należy dołączyć do programu odpowiedni nagłówek:

#include <string>

Metody klasy string

Spis

Podstawowe
Konstruktor Tworzy nowy obiekt
operator= Operator przypisania
Iteratory
      iterator begin();
const_iterator begin() const;
Zwraca iterator na pierwszy znak napisu
      iterator end();
const_iterator end() const;
Zwraca iterator wskazujący na miejsce za ostatnim znakiem
      reverse_iterator rbegin();
const_reverse_iterator rbegin() const;
Zwraca wsteczny iterator wskazujący na ostatni znak napisu
      reverse_iterator rend();
const_reverse_iterator rend() const;
Zwraca wsteczny iterator wskazujący na miejsce przed pierwszym znakiem
Rozmiar
size_t size() const;
Zwraca ilość znaków w napisie (to samo co length())
size_t length() const;
Zwraca ilość znaków w napisie (to samo co size())
size_t max_size ( ) const;
Zwraca maksymalny dozwolony rozmiar napisu
void resize ( size_t n, char c );
void resize ( size_t n );
Zmienia rozmiar napisu (skraca lub wydłuża).
Jeśli podany będzie dodatkowy argument c, po wydłużeniu napisu wolne miejsca zostaną wypełnione podanym znakiem.
size_t capacity ( ) const;
Zwraca wielkość aktualnie zarezerwowanej dla napisu pamięci. capacity >= size. W razie potrzeby dodatkowa pamięć jest alokowana automatycznie.
void reserve ( size_t res_arg=0 );
Wymusza zarezerwowanie ustalonej pamięci dla napisu. Jeśli podany argument jest mniejszy od aktualnej długości napisu, ilość pamięci jest zmniejszana do wielkości gwarantującej przechowanie dotychczasowego napisu.
void clear();
Czyści napis
bool empty ( ) const;
Sprawdza, czy napis jest pusty
Dostęp do znaków
const char& operator[] ( size_t pos ) const;
      char& operator[] ( size_t pos );
Zwraca znak na pozycji pos.
const char& at ( size_t pos ) const;
      char& at ( size_t pos );
Zwraca znak na pozycji pos. Działa podobnie do operatora [], z tym że funkcja at() wykonuje sprawdzenie zakresu i w wypadku jego przekroczenia rzuca wyjątek out_of_range.
Modyfikacja
operator+= Dopisuje znaki na końcu napisu
append Dopisuje znaków na końcu napisu
push_back Dodaje znak na koniec napisu
assign Zastępuje dotychczasowy napis nowym
insert Wstawia dodatkowe znaki do napisu
erase Usuwa znaki z napisu
replace Zmienia część napisu
copy Kopiuje fragment napisu
swap Zamienia zawartość dwóch stringów między sobą
Operacje dodatkowe
c_str Zwraca wskaźnik na tablicę znaków zakończoną zerem
data Zwraca wskaźnik na wewnętrzną tablicę przechowującą znaki napisu
get_allocator
find Wyszukuje pierwsze wystąpienie znaku/ciągu w napisie
rfind Wyszukuje ostatnie wystąpienie znaku/ciągu w napisie
find_first_of Wyszukuje pierwsze wystąpienie jednego z podanych znaków
find_last_of Wyszukuje ostatnie wystąpienie jednego z podanych znaków
find_first_not_of Wyszukuje pierwsze wystąpienie znaku nie podanego jako argument
find_last_not_of Wyszukuje ostatnie wystąpienie znaku nie podanego jako argument
substr Zwraca podciąg aktualnego napisu
compare Porównuje dwa stringi

Konstruktory

Istnieje kilka metod tworzenia obiektów klasy string.

explicit string ( );

Tworzy pusty napis.

string ( const string& str );

Kopiuje do nowego napisu zawartość już istniejącego.

string ( const string& str, size_t pos, size_t n = npos );

Tworzy nowy napis i kopiuje do niego podciąg napisu podanego jako argument. Kopiowana jest część zaczynająca się na pozycji pos i zawierająca conajwyżej n znaków (jeśli napis jest krótszy niż pos+n, kopiowane są znaki od pozycji pos do końca napisu).

string ( const char * s, size_t n );

Nowy napis jest tworzony poprzez kopiowanie n znaków z tablicy znaków wskazywanej przez s.

string ( const char * s );

Nowy napis jest tworzony poprzez skopiowanie łańcucha znaków zakończonego zerem wskazywanego przez s.

string ( size_t n, char c );

Tworzony jest napis zawierający n wystapień znaku c.

template<class InputIterator> 
    string (InputIterator begin, InputIterator end);

Jeśli InputIterator jest typu całkowitego, jego argumenty są rzutowane na odpowiednie typy i wywoływany jest konstruktor wymieniony wyżej.

string(static_cast<size_t>(begin),static_cast<char>(end));

W przeciwnym wypadku argumenty są traktowane jak iteratory i napis jest tworzony przez skopiowanie do stringa wszystkich elementów poczynając od begin a kończąc na elemencie poprzedzającym end.

Przypisanie

string& operator= ( const string& str );
string& operator= ( const char* s );
string& operator= ( char c );

Operator przypisania dla napisów.

  • str - obiekt klasy string
  • s - łańcuch znaków zakończony zerem
  • c - po przypisaniu zawartość napisu stanowi pojedynczy znak

W każdym przypadku zwracaną wartością jest *this.

Modyfikacja

Operacje dodatkowe

opis_kontenera/string.1228671543.txt.gz · ostatnio zmienione: 2008/12/07 18:39 przez mstefanc