vector 二维数组

it2023-10-24  71

动态数组

int *p; p = new int[m]; //注意,int[m]表示一个有m个元素的指针数组 //p=new int(8)表示分配一个int空间并初始化为8; for (int i = 0; i < m; ++i) { p[i] = new int[5]; }

利用Vector的push_back函数

vector<vector<int>> vec; //外层 vector<int> a; //内层 a.push_back(1); a.push_back(2); a.push_back(3); vector<int> b; b.push_back(4); b.push_back(5); b.push_back(6); vec.push_back(a); vec.push_back(b);

先定义好二维数组结构,在直接赋值

vector<vector<int> > array(m); //m表示的是初始化大小=array.size(),而不是初始值 //初始化一个m*n的二维数组 for(int i=0;i<m;i++) { array[i].resize(n); } //遍历赋值 for(i = 0; i < array.size(); i++) {   for (j = 0; j < array[0].size();j++) {    array[i][j] = (i+1)*(j+1); } }

遍历

(1)利用迭代器

void reverse_with_iterator(vector<vector<int>> vec) { if (vec.empty()) { cout << "The vector is empty!" << endl; return; } vector<int>::iterator it; vector<vector<int>>::iterator iter; vector<int> vec_tmp; cout << "Use iterator : " << endl; for(iter = vec.begin(); iter != vec.end(); iter++) { vec_tmp = *iter; for(it = vec_tmp.begin(); it != vec_tmp.end(); it++) cout << *it << " "; cout << endl; } }

(2)得到行、列大小,利用下标进行遍历(推荐)

void reverse_with_index(vector<vector<int>> vec) { if (vec.empty()) { cout << "The vector is empty!" << endl; return; } int i,j; cout << "Use index : " << endl; for (i = 0; i < vec.size(); i++) { for(j = 0; j < vec[0].size(); j++) cout << vec[i][j] << " "; cout << endl; } }

参考链接: link. 参考链接: link.

最新回复(0)