c++

c++ string类的构造函数有哪些

小樊
89
2024-08-28 02:28:53
栏目: 编程语言

C++中的std::string类包含了多种构造函数,可以方便地初始化字符串。以下是一些常见的std::string构造函数:

  1. 默认构造函数
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);

使用由迭代器firstlast指定的字符范围来初始化字符串。注意,这是一个模板构造函数,可以接受任何类型的迭代器。 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类的一些常见构造函数。

0
看了该问题的人还看了