以下代码的输出让我感到困惑:
const std::string str = "Modern C++";
std::string s1 {"Modern C++", 3};
std::string s2 {str, 3};
std::cout << "S1: " << s1 << "\n";
std::cout << "S2: " << s2 << "\n";
输出:
> S1: Mod
> S2: ern C++
有人能解释一下这个结果吗?
std::string
构造函数的参考文献吗?"Modern C++"不是一个std::string
,而是一个字符数组(会自动转换为char指针),有一个特定的构造函数适用于字符数组。 - HolyBlackCat