(C )创建可以从功能访问的动态全局数组/向量

(C++) Create dynamic global array/vector that can be accessed from functions

本文关键字:动态 全局 数组 向量 访问 功能 创建      更新时间:2023-10-16

我正在为地牢游戏编写代码。地牢是一个平方的字符阵列。在实际版本中,以" #define"声明数组的大小和敌人的数量等宽度,敌人的数量...问题是我不知道如何以用户输入大小的方式来声明数组,同时,数组为 global ,并且所有功能i都可以访问使用(#define(写。我对任何不涉及重写所有功能的建议开放:(

**目前,数组的声明为:

    #define WIDTH  20
    #define HEIGHT 20
    char dun[HEIGHT][WIDTH];

**链接到代码:https://github.com/zashuiba/the-dungeon-game/blob/master/master/dungeon/dungeon/dungeon.cpp

#include <vector>

您可能需要使用std::vector类。这是一个快速草稿代码:

size_t width = 20;
size_t height = 20;
std::vector< std::vector<char> > dun;
void init_array()
{
    dun.resize(height);
    for (size_t i = 0; i < height; ++i)
        dun[i].resize(width);
}

使dun成为向量的向量

#include<vector>
std::vector<std::vector<char>> dun; //global variable
//In your input function
input_from_user()
{
    int Height = getHeight();
    int width  = getWidth();
    dun.clear();
    for(int i = 0 ; i < Height ; ++i)
    {
        std::vector<char> createdVector(Width);
        dun.push_back(createdVector);
    }
}

现在,您可以在使用2 Dimentional Char数组时使用DUN,因为下标操作员对STD :: vector

超载