C++中,下标操作不添加元素,对于任何使用下标操作的情况,如string类型、vector类型等等,必须是已存在的元素才能用下标操作符进行索引。如果类型为空,通过
下标操作进行赋值时,不会添加任何元素,根本不起作用,验证代码如下:
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 int main() 5 { 6 string res; 7 res[0] = 'H'; 8 res[1] = 'e'; 9 res[2] = 'l'; 10 res[3] = 'l'; 11 res[4] = 'o'; 12 cout << res << "\n"; 13 return 0; 14 }
最后的输出结果为空。如果想实现此操作,代码如下:
1 #include<iostream> 2 #include<vector> 3 using namespace std; 4 int main() 5 { 6 string res(5,''); 7 res[0] = 'H'; 8 res[1] = 'e'; 9 res[2] = 'l'; 10 res[3] = 'l'; 11 res[4] = 'o'; 12 cout << res << "\n"; 13 return 0; 14 }
原则是已存在的元素使用下标操作符才有意义。