vector <vector <int> > array(3);//注意> 和> 之间的空格。
array2可以保存3个向量,向量的长度是可以改变的。array2[i]返回的是第i个向量。同理,array2[i][j]返回的是第i个向量中的第j个元素。
注意不能这样赋值:
array2[1][2]=9;
array2[i].resize(3);
array2可以保存3个向量,向量的长度是可以改变的。array2[i]返回的是第i个向量。同理,array2[i][j]返回的是第i个向量中的第j个元素。
注意不能这样赋值:
array2[1][2]=9;
原因就是你没有指定向量的大小。
用push_back函数可以解决问题:array2[1].push_back(9);但是好象不太爽。就不能用operator[]吗?答案是肯定的。不过要多加几个步骤,如下:
for(int i=0;i <3;i++)array2[i].resize(3);
这样,你就定义了一个3X3的数组了
或者这样使用,存放字符串数组:
typedef vector<string> strArray;
typedef vector<strArray> strArray2;
strArray strings1;
strings1.push_back("string1");
strings1.push_back("string2");
strArray2.push_back(strings1);
strArray strings2;
strings2.push_back("string21");
strings2.push_back("string22");
strArray2.push_back(strings2);