c++ - 第二个参数在std::string myString {“Hello”, “World”}中做什么?

标签 c++ string

这里是C++的新手,我一直在网上寻找答案,但找不到任何东西。我认为这可能与迭代器有关,但是cpp引用站点对我而言只是深奥的

最佳答案

它会导致不确定的行为。 std::string类是25年前设计的,其某些方面可能无法纳入今天的语言版本中。

这将调用构造函数,该构造函数采用一个迭代器对,该迭代器对应指向范围的开头和结尾,以初始化字符串,例如:

char foo[] = "abcdefgh";
std::string m{foo+1, foo+4};   // "bcd"

但是在您的情况下,指针不会指向同一数组,因此行为是不确定的。

它是https://en.cppreference.com/w/cpp/string/basic_string/basic_string中的构造函数#6:
template< class InputIt >
constexpr basic_string( InputIt first, InputIt last,
                    const Allocator& alloc = Allocator() );

关于c++ - 第二个参数在std::string myString {“Hello”, “World”}中做什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61263219/

相关文章:

c++ - 什么是调用指令

c++ - 是否可以在 gcc 3.3+ 中以旧方式使用 __func__? (C++)

Java 初级扫描仪

c++ - 使用 SendInput 锁定计算机

c++ - QNetworkAccessManager ssl 握手失败

c++ - 如何在 VC++ 中更改 __stdcall 的导出名称修饰?

java - 检测用户输入的单词是否与Java中数组列表中的字符串匹配

python - 将值赋给与 Python 中变量名相同的字符串

python - 给定一个字符串列表,每个字符串都由用逗号分隔的子字符串组成,如何对子字符串重新排序?

javascript - jQuery .search() 到任何字符串