26 Haziran 2020 Cuma

std::string Constructor Metodları

Giriş
İmzaları şöyle.
string(); //Default constructor
string( const string& s );
string( size_type length, const char& ch );
string( const char* str ); //C style constructor
string( const char* str, size_type length );
string( const string& str, size_type index, size_type length );
string( input_iterator start, input_iterator end );
Eksikler
1. Char Alan Constructor
Bu constructor mevcut değil. Mecburen şöyle yaparız
std::string s;
s = 's';

Constructor Metodları
Şimdi metodlara bakalım
1. Default Constructor
std::string str ();
şeklinde kullanılır. Size = 0, Capacity = undefined olur

2. Filling Constructor
İmzası şöyle.
basic_string( size_type count, 
              CharT ch, 
              const Allocator& alloc = Allocator() );
String'i belli sayıda karakter ile doldurulmış olarak yaratır.
Örnek
n tane * karakteri ile doldurulmuş bir string için şöyle yaparız.
std::string str (n, '*');
Örnek
null ile doldurmak için şöyle yaparız.
std::string str(1,"\0");
3. C Style String Constructor
İmzası şöyle
basic_string( const CharT* s,
              const Allocator& alloc = Allocator() );
Bu constructor'a null vermemek gerekir. Açıklaması şöyle.
The behavior is undefined if [s, s + Traits::length(s)) is not a valid range (for example, if sis a null pointer).
Örnek
Şöyle yaparız.
std::string str ("");
Örnek
Şöyle yapmamak gerekir. Yani null parametre olarak verilemez!
std::string foo(){
  return nullptr;
}
4. C Style String Constructor ve Size
Şöyle yaparız. Özellikle gömülü bir null karakteri eklemek için kullanılır.
std::string str ("pq\0rs");   // Two characters
std::string str ("pq\0rs",5); // 5 Characters
5. Iterator Constructor
İmzası şöyle.
template< class InputIt >
basic_string( InputIt first, InputIt last, 
              const Allocator& alloc = Allocator() );
Şöyle yaparız.
std::string str (str2.begin(), str2.end());
6. std::initializer_list  - std::initializer_list<char>
İmzası şöyle
basic_string( std::initializer_list<CharT> ilist,const Allocator& alloc = Allocator() );
Örnek
Şöyle yaparız.
std::string foo{'\0'};
Örnek
Şöyle yaparız
 std::vector<std::string>> vs{ 'a', 'b' };

Hiç yorum yok:

Yorum Gönder