Język C++
basic_string::basic_string
[konstruktor] Buduje nowy obiekt typu basic_string.Składnia
#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 );
};
}
Argumenty
Rzucane wyjątki
Jeżeli
_s jest wskaźnikiem na adres zerowy,
_n jest równe
npos 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
out_of_range.
Jeżeli wynik
length przekroczy
max_size, to zostanie rzucony
length_error.
Jeżeli szablon korzysta z domyślnego alokatora, to
bad_alloc zostanie rzucony, gdy funkcja będzie chcieć zaalokować pamięć i operacja się nie powiedzie.
Przykład
#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) |
---|
assign | Przypisuje nową wartość aktualnemu obiektowi. (metoda) |
---|
resize | Zmienia rozmiar obiektu. (metoda) |
---|
clear | Usuwa całą zawartość stringa. (metoda) |
---|
Linki zewnętrzne
Wszystkie teksty są chronione prawami autorskimi. Kopiowanie lub rozpowszechnianie treści poza niniejszym serwisem
jest zabronione.
Powyższe ograniczenie nie dotyczy autora opracowania, któremu przysługuje prawo do rozpowszechniania własnego tekstu wedle własnego uznania.