这里简单叙述一下C++ 构建二维动态数组 int **p;
p = new int*[10]; //注意,int*[10]表示一个有10个元素的指针数组
for (int i = 0; i < 10; ++i)
{
p[i] = new int[5];
} 1.初始化 1)利用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); (2)先定义好二维数组结构,在直接赋值 //得到一个5行3列的数组 //由vector实现的二维数组,可以通过resize()的形式改变行、列值 int i, j; vector<vector<int>> array(5);//定义1个行数为5列数不知道的 for (i = 0; i < array.size(); i++)//array.size()数组的行数 array[i].resize(3);//定义数组的列数 for (i = 0; i < array.size(); i++) { for (j = 0; j < array[0].size(); j++)//array[0].size()数组的列数 { array[i][j] = (i + 1)*(j + 1); } } 2.遍历 (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; } } |
|
来自: 昵称56522687 > 《c 》