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::basic_string

[konstruktor] Buduje nowy obiekt typu basic_string.

Składnia

C/C++
#include <string>

namespace std
{
    template <
    class TypZnaku,
    class CechowanieZnakow = char_traits < TypZnaku >,
    class Alokator = allocator < TypZnaku >
    >
    class basic_string
    {
    public:
        explicit basic_string( const Alokator & _alokator = Alokator() );
       
        basic_string( const basic_string & _str );
        basic_string( const basic_string & _str, const Alokator & _alokator );
       
        basic_string( const basic_string & _str, size_type _pos, size_type _len = npos, const Alokator & _alokator = Alokator() );
       
        basic_string( const charT * _s, const Alokator & _alokator = Alokator() );
       
        basic_string( const charT * _s, size_type _n, const Alokator & _alokator = Alokator() );
       
        basic_string( size_type _n, charT _c, const Alokator & _alokator = Alokator() );
       
        template < class WejsciowyIterator >
        basic_string( WejsciowyIterator _pierwszy, WejsciowyIterator _ostatni, const Alokator & _alokator = Alokator() );
       
        basic_string( basic_string && _str ) noexcept;
        basic_string( basic_string && _str, const Alokator & _alokator );
       
    }; //class basic_string
} //namespace std

Argumenty

ArgumentOpis
_alokatorObiekt alokatora. Kontener trzyma i używa wewnętrznej kopii tego alokatora.
_strInny obiekt tego samego typu (uwzględniając parametry szablonu!), którego wartość albo jej część zostanie przypisana do aktualnego obiektu.
_posPozycja pierwszego znaku stringu _str, od którego rozpoczyna się kopiowanie znaków do aktualnego obiektu.
_lenMaksymalna liczba znaków, jaka może zostać skopiowana. Wartość » standard C++ » basic_stringnpos oznacza skopiowanie wszystkich pozostałych znaków.
_sWskaźnik na tablicę znaków (np. c-string).
_nLiczba znaków do skopiowania.
_cZnak wypełniający string. Wszystkie _n znaków będzie zainicjalizowane tą wartością.
_pierwszy, _ostatniPrzedział [_pierwszy,_ostatni) określa nową wartość aktualnego obiektu.

Rzucane wyjątki

Jeżeli _s jest wskaźnikiem na adres zerowy, _n jest równe » standard C++ » basic_stringnpos albo przedział [_pierwszy, _ostatni) nie jest poprawny, zachowanie jest niezdefiniowane.

Jeżeli _pos jest większe od długości _str, to wtedy zostanie rzucony » standard C++out_of_range.
Jeżeli wynik » standard C++ » basic_stringlength przekroczy » standard C++ » basic_stringmax_size, to zostanie rzucony » standard C++length_error.
Jeżeli szablon korzysta z domyślnego alokatora, to » standard C++bad_alloc zostanie rzucony, gdy funkcja będzie chcieć zaalokować pamięć i operacja się nie powiedzie.

Przykład

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

typedef std::basic_string < char, std::char_traits < char >, std::allocator < char >> MojString;
int main()
{
    MojString s0( "Poczatkowy string" );
   
    MojString s1;
    MojString s2( s0 );
    MojString s3( s0, 11, 3 );
    MojString s4( "Sekwencja znakow", 3 );
    MojString s5( "Inna sekwencja znakow" );
    MojString s6( 10, 'x' );
    MojString s7a( 10, 42 );
    MojString s7b( s0.begin(), s0.begin() + 11 );
   
    std::cout << "s1: " << s1 << "\ns2: " << s2 << "\ns3: " << s3;
    std::cout << "\ns4: " << s4 << "\ns5: " << s5 << "\ns6: " << s6;
    std::cout << "\ns7a: " << s7a << "\ns7b: " << s7b << '\n';
    return 0;
}
Standardowe wyjście programu:
s1:
s2: Poczatkowy string
s3: str
s4: Sek
s5: Inna sekwencja znakow
s6: xxxxxxxxxx
s7a: **********
s7b: Poczatkowy

Zagadnienia powiązane

operator=Przypisuje nową wartość aktualnemu obiektowi. (operator - metoda)
assignPrzypisuje nową wartość aktualnemu obiektowi. (metoda)
resizeZmienia rozmiar obiektu. (metoda)
clearUsuwa całą zawartość stringa. (metoda)

Linki zewnętrzne