c++ 二维结构体数组定义

本文介绍了一个使用C++定义的结构体Dis,并展示了如何利用动态内存分配为二维结构体数组分配空间,以及如何释放这些空间。通过具体代码示例,读者可以了解C++中new与delete操作符的基本用法。
struct Dis{
        string  distance;
        int num;

};

 Dis (*store)[N]=new Dis[N][N];

 delete []store;

C++二维数组结构体数组在多个方面存在区别: ### 定义与结构 - **二维数组**:是一种多维数组,本质上是多个一维数组的组合,可看作矩阵。例如`int array[3][4]` 定义了一个三行四列的二维数组,在内存中连续存储,类似将矩阵伸展铺平成一维数组 [^1]。 ```cpp int array[3][4]; ``` - **结构体数组**:是由结构体类型元素组成的数组结构体是一种自定义的数据类型,可包含不同类型的数据成员。例如定义一个包含姓名和年龄的结构体`Person`,再创建该结构体数组 [^1]。 ```cpp struct Person { std::string name; int age; }; Person people[5]; ``` ### 数据存储 - **二维数组**:存储相同类型的数据元素,如`int`、`float`等。所有元素类型一致,便于进行数值计算和矩阵操作 [^1]。 - **结构体数组**:每个元素是一个结构体,可包含多种不同类型的数据成员。例如上述`Person`结构体数组,每个元素包含一个`std::string`类型的`name`和一个`int`类型的`age`。 ### 访问方式 - **二维数组**:使用两个下标访问元素,如`array[i][j]`,其中`i`是行索引,`j`是列索引 [^1]。 ```cpp array[1][2] = 10; // 给第二行第三列的元素赋值 ``` - **结构体数组**:先通过数组下标选择结构体元素,再使用成员访问运算符(`.`)访问结构体的成员。 ```cpp people[2].name = "Alice"; people[2].age = 25; ``` ### 用途 - **二维数组**:常用于处理矩阵、表格数据,如图像处理、数学计算等领域。 - **结构体数组**:适用于存储一组相关的、具有多种属性的数据对象,如学生信息、员工记录等。 ### 初始化 - **二维数组**:可使用嵌套花括号进行初始化。 ```cpp int array[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; ``` - **结构体数组**:可逐个初始化每个结构体元素。 ```cpp Person people[2] = { {"Bob", 20}, {"Charlie", 22} }; ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值