由于项目的原因,需要动态创建一个二维数组来保存灰度值

本文介绍了一种使用C++动态创建二维数组的方法,并通过一个示例程序详细展示了如何分配内存、填充数组以及释放内存的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 由于项目的原因,需要动态创建一个二维数组来保存灰度值,在优快云上发帖,没人回答

故,只有自己查阅资料,代码尝试,结果如下,以备忘。

 

// dongtaiChuangjianErweishuzu.cpp : 定义控制台应用程序的入口点。
//xiaojun 2011年7月30日16:39:02

#include "stdafx.h"
#include <stdlib.h>
#include <iostream>
using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
	int row , col ;
	int i , j  ;

	cout<<"输入二维数组的行,列 :";
	cin>>row >>col ;
	//动态定义二维数组
	int **p2 ;
	p2 = new int*[row] ;
	for( i = 0 ; i < row ; i ++ )
		p2[i] = new int[col] ;
	//输入二维数组的值
	for( i = 0 ; i < row ; i ++ )
		for( j = 0 ; j < col ; j ++ )
			p2[i][j] = j + col * i ;
	//输出二维数组
	cout<<"输出二位数组:"<<endl;
	for( i = 0 ; i < row ; i ++ )
	{
		for( j = 0 ;j < col ; j ++ )
			cout<<p2[i][j]<<' ' ;
		cout<<endl;
	}
	//释放二维数组
	for( i = 0 ; i < row ; i ++ )
		delete []p2[i] ;
	delete []p2 ;
	system("pause");
	return 0;
}


 

 

### Python 中二维数组的使用方法 在 Python 中,通常通过 `NumPy` 库来高效地操作多维数组。以下是关于如何定义、初始化以及操作二维数组的一些核心知识点。 #### 定义与初始化 可以通过列表嵌套的方式手动创建二维数组: ```python array_2d = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] print(array_2d) ``` 如果需要更高效的数值计算,则推荐使用 NumPy 的 `ndarray` 数据结构[^2]。例如: ```python import numpy as np # 创建一个 3x3 的二维数组并填充为全零 zero_array = np.zeros((3, 3)) print(zero_array) # 创建一个范围内的整数构成的二维数组 range_array = np.arange(1, 10).reshape(3, 3) print(range_array) ``` #### 输入方式 当从标准输入读取二维数组时,可以采用如下形式[^1]: ```python n = int(input()) line = [[0]*n for _ in range(n)] # 初始化 n×n 零矩阵 for i in range(n): line[i] = list(map(int, input().split())) print(line) ``` 上述代码片段实现了动态接收用户指定大小的方阵,并将其存储到变量 `line` 中。 #### 常见操作 - **切片访问**: 可以像对待普通列表一样索引和切片。 ```python sub_matrix = array_2d[0][1:] # 获取第一行第二列及其后的所有元素 last_row = b[-1, :] # 提取最后一行作为一个二维数组[^4] ``` - **转置**: 将行列互换位置。 ```python transposed = np.transpose(range_array) print(transposed) ``` - **拼接**: 利用 `np.concatenate()` 或者 `hstack()`, `vstack()` 方法完成水平或垂直方向上的连接. ```python another = np.ones((3, 3), dtype=int)*10 combined_hori = np.hstack([range_array, another]) # 水平堆叠 combined_verti = np.vstack([range_array, another[:1]]) # 垂直叠加前两行加一行新数据 print(combined_hori) print(combined_verti) ``` #### 实际应用场景举例 假设有一个场景需求是对图像像素值进行批量调整亮度对比度等处理,在这种情况下就可以把图片看作是由RGB三个通道组成的三维张量(即特殊的高阶数组),而其中每一个单独颜色平面实际上就是一个普通的二维灰度图表示法下的数组实例[^3].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值