std::string使用迭代器初始化,给个示例
时间: 2023-08-15 10:00:50 浏览: 198
当使用迭代器初始化`std::string`时,可以通过指定迭代器的范围来构造字符串。以下是一个示例代码:
```cpp
#include <iostream>
#include <string>
int main() {
std::string str;
std::string::iterator it1 = str.begin();
std::string::iterator it2 = str.end();
std::string newStr(it1, it2);
std::cout << newStr << std::endl; // 输出: ""
std::string text = "Hello, World!";
std::string::iterator it3 = text.begin() + 7; // 指向逗号字符
std::string::iterator it4 = text.end();
std::string subStr(it3, it4);
std::cout << subStr << std::endl; // 输出: "World!"
return 0;
}
```
在上面的示例中,我们首先创建了一个空的`std::string`对象`str`。然后,我们定义了两个迭代器`it1`和`it2`,分别指向`str`的起始位置和结束位置。通过指定这两个迭代器的范围,我们使用迭代器初始化了一个新的`std::string`对象`newStr`,其值为空字符串。
接下来,我们创建了一个带有初始文本的`std::string`对象`text`。然后,我们定义了两个迭代器`it3`和`it4`,其中`it3`指向字符串中的逗号字符,而`it4`指向字符串的结束位置。通过指定这两个迭代器的范围,我们使用迭代器初始化了一个新的`std::string`对象`subStr`,其值为"World!"。
注意,迭代器范围初始化字符串时,结束迭代器指向的位置不包含在范围内。因此,在上面的示例中,`subStr`的值不包括逗号字符。
阅读全文