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