使用C++ vector实现二维数组

一、vector简介

vector是C++ STL库中的一个容器,它能够动态地调整大小,具有快速的插入和删除操作。可以看作是一个可以像数组一样使用的动态数组,支持下标随机访问。

二、使用vector实现二维数组

#include <vector>
using namespace std;

int main() {
    int row = 3, col = 4;
    vector<vector<int>> arr(row, vector<int>(col));

    // 遍历二维数组
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            arr[i][j] = i * col + j;
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

本例使用vector<vector<int>>定义了一个二维数组,其中第一个vector表示行,第二个vector表示列。初始化时,将行数和列数传入vector的构造函数,即可动态创建一个row行col列的二维数组。

该二维数组与普通数组相似,可以通过arr[i][j]访问二维数组的元素。在遍历二维数组时,可以使用双重循环依次访问二维数组的每个元素。

三、二维数组的动态调整

#include <vector>
using namespace std;

int main() {
    int row = 3, col = 4;
    vector<vector<int>> arr(row, vector<int>(col));

    // 输出原始数组
    cout << "原始数组:" << endl;
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            arr[i][j] = i * col + j;
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

    // 动态添加一行,列数不变
    row++;
    arr.push_back(vector<int>(col));
    cout << "添加一行后的数组:" << endl;
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            arr[i][j] = i * col + j;
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

    // 动态添加一列,行数不变
    col++;
    for (int i = 0; i < row; i++) {
        arr[i].push_back(i * col + col - 1);
    }
    cout << "添加一列后的数组:" << endl;
    for (int i = 0; i < row; i++) {
        for (int j = 0; j < col; j++) {
            cout << arr[i][j] << " ";
        }
        cout << endl;
    }

    return 0;
}

本例展示了如何使用vector动态调整二维数组的大小。首先定义了一个3行4列的二维数组,并初始化了所有元素。然后,通过arr.push_back增加一行,列数不变;通过arr[i].push_back增加一列,行数不变。每次增加完后,均需重新遍历整个二维数组输出。

四、与普通数组的对比

使用vector实现二维数组,优点在于动态调整大小方便,不需要手动释放内存。同时,vector的操作比普通数组更加灵活,例如vector支持动态追加元素,可以方便地进行插入和删除。相比之下,使用普通数组实现二维数组会有许多不便之处,例如需要手动申请和释放内存,无法进行动态调整等。

原创文章,作者:SCKY,如若转载,请注明出处:https://www.506064.com/n/147278.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SCKYSCKY
上一篇 2024-11-01 14:07
下一篇 2024-11-01 14:07

相关推荐

  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python去掉数组的中括号

    在Python中,被中括号包裹的数据结构是列表,列表是Python中非常常见的数据类型之一。但是,有些时候我们需要将列表展开成一维的数组,并且去掉中括号。本文将为大家详细介绍如何用…

    编程 2025-04-29
  • Python操作数组

    本文将从多个方面详细介绍如何使用Python操作5个数组成的列表。 一、数组的定义 数组是一种用于存储相同类型数据的数据结构。Python中的数组是通过列表来实现的,列表中可以存放…

    编程 2025-04-29
  • Python二维数组对齐输出

    本文将从多个方面详细阐述Python二维数组对齐输出的方法与技巧。 一、格式化输出 Python中提供了格式化输出的方法,可以对输出的字符串进行格式化处理。 names = [‘A…

    编程 2025-04-29
  • Java创建一个有10万个元素的数组

    本文将从以下方面对Java创建一个有10万个元素的数组进行详细阐述: 一、基本介绍 Java是一种面向对象的编程语言,其强大的数组功能可以支持创建大规模的多维数组以及各种复杂的数据…

    编程 2025-04-28
  • Python数组随机分组用法介绍

    Python数组随机分组是一个在数据分析与处理中常用的技术,它可以将一个大的数据集分成若干组,以便于进行处理和分析。本文将从多个方面对Python数组随机分组进行详细的阐述,包括使…

    编程 2025-04-28
  • Python数组索引位置用法介绍

    Python是一门多用途的编程语言,它有着非常强大的数据处理能力。数组是其中一个非常重要的数据类型之一。Python支持多种方式来操作数组的索引位置,我们可以从以下几个方面对Pyt…

    编程 2025-04-28
  • Python语言数组从大到小排序符号的用法介绍

    当我们使用Python进行编程的时候,经常需要对数组进行排序从而使数组更加有序,而数组的排序方式有很多,其中从大到小排序符号是一种常见的排序方式。本文将从多个方面对Python语言…

    编程 2025-04-28
  • Python列表转numpy数组

    本文将阐述Python中列表如何转换成numpy数组。在科学计算和数据分析领域中,numpy数组扮演着重要的角色。Python与numpy的无缝结合使得数据操作更加方便和高效。因此…

    编程 2025-04-27

发表回复

登录后才能评论