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>>索引;
coutstd::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;
}