Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?
Hasło nie zostało zweryfikowane
Niniejsze hasło zostało opracowane, jednak nie zostało ono zweryfikowane przez administrację serwisu. Jeżeli znalazłeś błędy merytoryczne w niniejszym dokumencie, prosimy o ich zgłoszenie na forum w dziale Znalezione błędy.
Opracował: Mrovqa
Język C++

basic_string::erase

[metoda] Usuwa część stringa.

Składnia

C/C++
#include <string>

namespace std
{
    template <
    class TypZnaku,
    class CechowanieZnakow = char_traits < TypZnaku >,
    class Alokator = allocator < TypZnaku >
    >
    class basic_string
    {
    private:
        typedef basic_string < TypZnaku, CechowanieZnakow, Alokator > UtworzonaKlasaT;
    public:
        UtworzonaKlasaT & erase( size_type _pos = 0, size_type _len = npos ); //(1)
       
        iterator erase( const_iterator _p ); //(2)
       
        iterator erase( const_iterator _pierwszy, const_iterator _ostatni ); //(3)
       
    }; //class basic_string
} //namespace std

Argumenty

ArgumentOpis
_posPozycja pierwszego znaku do usunięcia.
_lenMaksymalna liczba znaków do usunięcia. Wartość » standard C++ » basic_stringnpos spowoduje usunięcie wszystkich pozostałych znaków.
_pIterator wskazujący znak do usunięcia.
_pierwszyIterator adresujący pierwszy element w przedziale, który ma zostać dodany na koniec.
_ostatniIterator adresujący pierwszy element za ostatnim z przedziału, który ma zostać dodany na koniec.

Zwracana wartość

Pierwsza metoda oznaczona przez (1) zwraca referencję do obiektu, na którym została wywołana (
* this
).
Pozostałe wersje metody zwracają iterator do pozycji znaku, który zajmuje teraz miejsce pierwszego usuniętego znaku. Jeżeli nie ma więcej znaków za usuniętym tekstem, iterator będzie wskazywał na » standard C++ » basic_stringend.

Opis szczegółowy

Metody usuwające część stringu. Metoda (1) usuwa _len znaków (lub mniej w przypadku napotkania końca kontenera) od pozycji _pos. Metoda (2) usuwa pojedynczy znak wskazywany przez iterator _p. Metoda (3) usuwa cały przedział znaków określony przez [_pierwszy, _ostatni).

Rzucane wyjątki

Jeżeli wyjątek zostanie rzucony, wartość obiektu nie ulegnie zmianie.

Jeżeli _p lub przedział [_pierwszy, _ostatni) nie jest poprawny, zachowanie jest niezdefiniowane.

Jeżeli _pos jest większe od długości aktualnego obiektu, to wtedy zostanie rzucony » standard C++out_of_range.

Przykład

C/C++
#include <iostream>
#include <string>

typedef std::basic_string < char, std::char_traits < char >, std::allocator < char >> MojString;
int main()
{
    MojString str( "To jest przykladowe zdanie." );
    std::cout << str << '\n';
    // "To jest przykladowe zdanie."
    //          ^^^^^^^^^^^^
    str.erase( 8, 12 );
    std::cout << str << '\n';
    // "To jest zdanie."
    //          ^
    str.erase( str.begin() + 8 );
    std::cout << str << '\n';
    // "To jest danie."
    //     ^^^^^
    str.erase( str.begin() + 3, str.end() - 6 );
    std::cout << str << '\n';
    // "To danie."
    return 0;
}
Standardowe wyjście programu:
To jest przykladowe zdanie.
To jest zdanie.
To jest danie.
To danie.

Zagadnienia powiązane

clearUsuwa całą zawartość stringa. (metoda)
replaceZamienia część znaków na inne. (metoda)
insertWstawia znaki do aktualnego łańcucha znaków. (metoda)
assignPrzypisuje nową wartość aktualnemu obiektowi. (metoda)
appendModyfikuje przechowywany tekst poprzez dopisanie podanego łańcucha znaków na koniec tekstu. (metoda)

Linki zewnętrzne