有人可以解釋下面示例中初始化雙花括號和單花括號之間的行爲差異嗎?使用雙曲花括號初始化矢量<string>
代碼#1:
vector<string> v = {"a", "b"};
string c(v[0] + v[1]);
cout << "c = " << c;
cout << "c.c_str() = " << c.c_str();
輸出#1:
c = ab
c.c_str() = ab
代碼#2:
vector<string> v = {{"a", "b"}};
string c(v[0] + v[1]);
cout << "c = " << c;
cout << "c.c_str() = " << c.c_str();
輸出#2:
c = a\acke�Z\
c.c_str() = a
我測試代碼#2並拋出異常行:'vector v = {{「a」,「b」}};' –
aghilpro