每天一点C++——多维数组的创建和初始化

使用vector来实现多维数组。

已知数组大小

已经知道数组大小的话可以通过下面方式来创建数组。

  1. 数组
int myArray[3][4];
  1. vector
std::vector<std::vector<int>> vec(13, std::vector<int>(7, 2));

未知数组大小

int func(const std::vector<std::vector<int>> & data) {
    size_t ordinate = data.size();
	size_t abscissa = data[0].size();

	int myArray2[ordinate][abscissa];    //array实现
	int myArray3[ordinate][abscissa] = {
   
   {0}}; //error 
	std::vector<std::vector<int>> vec(ordinate, std::vector<int>(abscissa, 5));   //vector实现
	for (int i = 0; i < ordinate; ++i) {
	    for (int j = 0; j < abscissa; ++j) {
		    std::cout << "array[" << i << "][" << j << "] = " << myArray2[i][j] << "\n";	
		    std::cout << "vec[" << i << "][" << j << "] = " << vec[i][j] << "\n";	
		}
	}
	
	int row = ordinate + 3;
	int collom = abscissa + 3;
	vec.resize(row, std::vector<int>(collom, 7));  //resize 改变数组大小
	for (int i = 0; i < row; ++i) {
	    for (int j = 0; j < collom; ++j) {
		   // std::cout << "array[" << i << "][" << j << "] = " << myArray2[i][j] << "\n";	
		    std::cout << "vec[" << i << "][" << j << "] = " << vec[i][j] << "\n";	
		}
	}
	return 0;
}

当然vector也可以通过resize来改变数组的大小,代码中resize后修改数组的值是什么样的呢?可以实际执行一下看一看是不是和预想的一样 。。。

猜你喜欢

转载自blog.csdn.net/itlilyer/article/details/119188294
今日推荐