Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
二维数组是否需要定义为指针? 我正在通过C++ HKEARKANK模块工作,我遇到了一个问题,要求输出二维数组中的某些值。问题是:_C++_Arrays_Pointers_Dynamic_Reference - Fatal编程技术网

二维数组是否需要定义为指针? 我正在通过C++ HKEARKANK模块工作,我遇到了一个问题,要求输出二维数组中的某些值。问题是:

二维数组是否需要定义为指针? 我正在通过C++ HKEARKANK模块工作,我遇到了一个问题,要求输出二维数组中的某些值。问题是:,c++,arrays,pointers,dynamic,reference,C++,Arrays,Pointers,Dynamic,Reference,考虑一个n元素数组,a,其中数组中的每个索引i都包含对k整数数组的引用(其中k的值因数组而异)。。。 给定a,您必须回答q查询。每个查询的格式为i j,其中i表示数组a中的索引,j表示数组中位于a[i]的索引。对于每个查询,在数组中的位置a[i]的新行上查找并打印元素j的值 我不想让整个问题成为一个引语,所以这里是链接:。基本上,第一个输入行包含上述n和q。然后有n行整数,每行输入的第一个整数是k,这是输入行k本身之后的整数数。在这些n行之后是一行,带有两个整数i和j,分别表示数组索引和元素索引

考虑一个n元素数组,
a
,其中数组中的每个索引
i
都包含对
k
整数数组的引用(其中
k
的值因数组而异)。。。 给定
a
,您必须回答
q
查询。每个查询的格式为
i j
,其中
i
表示数组a中的索引,
j
表示数组中位于
a[i]
的索引。对于每个查询,在数组中的位置
a[i]
的新行上查找并打印元素
j
的值

我不想让整个问题成为一个引语,所以这里是链接:。基本上,第一个输入行包含上述
n
q
。然后有
n
行整数,每行输入的第一个整数是
k
,这是输入行
k
本身之后的整数数。在这些
n
行之后是一行,带有两个整数
i
j
,分别表示数组索引和元素索引

因此,解决方案是创建一个二维数组,可以用
n
子数组填充。这是我最初的代码:

#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;


int main() {
    int n, q;
    cin >> n >> q;
    int a[n];
    for(int i=0; i<n; i++){
        int k;
        cin >> k;
        int subA[k];

        for(int j=0; j<k; j++)
            cin >> subA[j];

        arr[i] = subA[k];
    }

    for (int x=0; x<q; x++){
        int i, j;
        cin >> i>> j;
        cout << a[i][j] << endl;
    }
    return 0;
}
#包括
#包括
#包括
#包括
#包含问题,它只是漫不经心地跳过了一个事实,即创建二维数组似乎需要指针。
那么,当创建二维数组时,是否需要使用指针?如果是这样的话,我说需要指针是对的,因为它们不是像
int
char
那样的类型,而是只包含一个不需要知道其类型的地址吗


另外,我知道我提供的第一个链接本身就提供了一个关于向量的链接。它没有给出任何例子,我也不知道它们是什么,谷歌搜索和堆栈溢出并没有真正的帮助(特别是I/o部分),所以我只是使用了一些我熟悉的东西,而且通过谷歌搜索和堆栈溢出的过程,似乎我上面提出的高级解决方案不需要向量

请自上而下处理错误消息。在此之前应该有一个关于未声明的
arr
。在C++中。根本不要使用原始数组。改用
std::vector
。我也建议你向一个优秀的老师学习。C++是不可原谅的,学习非结构化的。“数组中的每个索引i包含对一个k整数数组的引用”:这种赋值方式是措辞的,它似乎假设你使用原始数组(在现代C++中不应该使用),而且在C++中引用数组是不可能的,所以在技术上没有意义。您不应该继续使用此作业的来源来学习C++。
invalid types 'int[int]' for array subscript
         cout << a[i][j] << endl;