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类的一些常见构造函数。


