无法从字符串向量中打印字符串

cannot print a string from a vector of strings

我有一个字符串向量,我一个字符一个字符地手动填充其中的第一个字符串

vector <std::string>  vec(6);
vec[0][0] = 'h';
vec[0][1] = 'e';
vec[0][2] = 'y';
cout << "vec[0] = " << vec[0] << "\n"

现在我想打印 vec[0] ,它应该是一个字符串 "hey" ,但它打印为空 space。 只有当我也一个字符一个字符地打印时,我才能打印,就像这样

for(int i = 0 ; i<1 ; i++)
   {
       for(int j = 0 ; j < 3 ; j++)
       {
           cout << vec[i][j];
       }
       cout << "\n";
   }

为什么我不能简单地打印整个字符串。

vector <std::string> vec(6); 给你一个包含六个空字符串的向量。 vec[0][0] = 'h'; 试图将字符 h 分配到第一个空字符串的第一个槽位,这是不合法的,因为括号运算符只能替换现有字符。使用类似 vec[0] += 'h' 的内容附加到字符串。