代码之家  ›  专栏  ›  技术社区  ›  srishti_pathak

我需要创建一个n元素数组,其中每个索引I都有一个对另一个K整数数组的引用

  •  -1
  • srishti_pathak  · 技术社区  · 7 年前

    这是我必须实现的。这是hackerrank变量Sizedaray问题。 https://s3.amazonaws.com/hr-challenge-images/14507/1476906485-2c93045320-variable-length-arrays.png

    我读过解决方案,但无法理解。

    以下是获取代码片段的完整代码。

    int main()
    {
        int n,q;
        cin>>n>>q;
        int** seq=new int* [n];
        for(int i=0;i<n;i++)
        {  
          int a;
          cin>>a;
          int* b=new int [a];
          for(int j=0;j<a;j++)
            {
              int e;
              cin>>e;
              b[j]=e;
            }
           *(seq+i)=b;
       }
    
      for(int i=0;i<q;i++)
      {
    
          int r,s;
          cin>>r>>s;
          cout<<seq[r][s]<<endl;
    
      }
    }
    

    我还阅读了一些关于使用向量创建可变大小数组的内容。我不明白。请解释一下。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Aditya Kumar    7 年前

    类似地,int**p表示指向整数指针的指针。

    现在,假设您创建一个1D数组,如下所示:

    int *a = new int[10];
    

    这里,指针“a”指向刚刚创建的数组“new”的第一个元素的地址,即整数。

    int **seq = new int*[n];
    

    这里的“new”将创建一个“指针”数组。因此,要指向第一个元素,这里是一个指针,您需要使用指向指针的指针。这就是为什么**seq。