C++中的std::string
類包含了多種構造函數,可以方便地初始化字符串。以下是一些常見的std::string
構造函數:
std::string();
創建一個空字符串,即長度為0的字符串。 2. 從C風格字符串構造
std::string(const char* s);
使用以’\0’結尾的C風格字符串s
來初始化std::string
對象。
3. 指定長度的C風格字符串構造
std::string(const char* s, size_t n);
使用C風格字符串s
的前n
個字符來初始化std::string
對象。這里不需要以’\0’結尾。
4. 復制構造函數
std::string(const std::string& str);
通過復制另一個std::string
對象str
來初始化新的std::string
對象。
5. 子字符串構造
std::string(const std::string& str, size_t pos, size_t len = npos);
從str
中提取一個子字符串,從位置pos
開始,長度為len
。如果未指定len
或者len
大于str
的剩余長度,則子字符串將一直擴展到str
的末尾。
6. 填充構造函數
std::string(size_t n, char c);
創建一個長度為n
的字符串,其中每個字符都被初始化為c
。
7. 通過迭代器構造
template<class InputIt>
std::string(InputIt first, InputIt last);
使用由迭代器first
和last
指定的字符范圍來初始化字符串。注意,這是一個模板構造函數,可以接受任何類型的迭代器。
8. 移動構造函數
std::string(std::string&& str) noexcept;
通過“移動”而非復制的方式,從另一個std::string
對象str
來初始化新的std::string
對象。這通常會使得原始字符串變為空,并且操作是高效的。
9. 初始化列表構造函數
std::string(std::initializer_list<char> il);
使用一個初始化列表il
來初始化字符串。例如:std::string s = {'a', 'b', 'c'};
。
以上就是C++中std::string
類的一些常見構造函數。