Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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++ 向量数组与变量数组_C++ - Fatal编程技术网

C++ 向量数组与变量数组

C++ 向量数组与变量数组,c++,C++,谁能帮帮我吗?我在做,但在使用向量时遇到了这个问题。但是我有很多缺点 我需要在此代码中进行哪些更改才能获得所需的结果 这是我的密码: #include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; int main() { int n,q; cin>

谁能帮帮我吗?我在做,但在使用向量时遇到了这个问题。但是我有很多缺点

我需要在此代码中进行哪些更改才能获得所需的结果

这是我的密码:

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

int main() {
    int n,q;
    cin>>n>>q;

    vector<int> var[n];
    for(int i=0;i<n;i++)
    {
        int size;
        cin>>size;
        for(int j=0;j<size;j++)
        {
            int elm;
            cin>>elm;
            var[n].insert(var[n].begin(),elm);
            var[n].begin()++;
        }
    }

    for(int i=0;i<q;i++)
    {
        int vindex,index;
        cin>>vindex>>index;
        cout<<var[vindex][index]<<"\n";
    }  
    return 0;
}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main(){
int n,q;
cin>>n>>q;
向量var[n];
对于(int i=0;i>size;
对于(int j=0;j>elm;
var[n].insert(var[n].begin(),elm);
var[n].begin()++;
}
}
对于(inti=0;i>vindex>>索引;
cout
std::vector
是C++的可变大小数组

var[n]
超出了
var
的末尾,您可能打算使用第i个
std::vector

我们可以通过注意复制值来进一步清理它

#包括
#包括
#包括
#包括
int main()
{
int n;
int-q;
标准:cin>>n>>q;
std::向量var(n);
用于(自动和向量:变量)
{
整数大小;
标准:cin>>尺寸;
调整向量大小(大小);
std::copy_n(std::istream_迭代器(std::cin),size,vec.begin());
}
对于(int i=0;i>行>>列;

std::cout期望的结果是什么?
var[n].insert(var[n].begin(),elm);
。你的意思是
var[i]
?,因为
var[n]
已经超出了范围。你有没有检查数组有多大?也许它会溢出堆栈。你有没有检查编译器的文档,它是否支持非平凡类型的VLA?
#include <vector>
#include <iostream>
#include <algorithm>
#include <iterator>

int main()
{
    int n;
    int q;
    std::cin >> n >> q;

    std::vector<std::vector<int>> var(n);
    for(auto & vec : var)
    {
        int size;
        std::cin >> size;
        vec.resize(size);

        std::copy_n(std::istream_iterator<int>(std::cin), size, vec.begin());
    }

    for(int i=0; i < q; ++i)
    {
        int row, col;
        std::cin >> row >> col;
        std::cout << var[row][col] << '\n';

    }  

    return 0;
}