vector本來就是可以用來代替一維數組的,vector提供了operator[]函數,可以像數組一樣的操作,而且還有邊界檢查,動態改變大小。
這里只介紹用它來代替二維的數組,二維以上的可以依此類推。
1、定義二維vector
vector<vector<int> > v;//注意>和>之間的空格。(c++11之后不用注意vector<vector>> 后面兩個之間的空格了)
2、訪問二維vector的元素的三種方式
如果指定外層和內層向量的大小,就可用operator[]進行讀和寫;如果只指定外層向量大小,就能用push_back()函數進行寫,不能用operator[]進行讀和寫。
1)指定外層vector大小
可用push_back函數進行初始化:
v.resize(3); v[1].push_back(9);
2)遍歷指定內層vector大小
提前設定好每行vector的大小,就可用operator[]訪問,如下:
for(int i=0;i<3;i++) v[i].resize(3);
3)一次指定內外層vector大小
v.resize(n, vector<int>(m));