gpt4 book ai didi

c++ - 使用 vector 的 vector 的多个数组

转载 作者:行者123 更新时间:2023-11-28 05:05:14 25 4
gpt4 key购买 nike

我想使用 Vector of vector 插入多个数组。
对于那个 I/P 是这样的:

2   : Number of array ( can be vary )    

3 1 2 3 : 3( size of array) 1 2 3( elements in array )

4 4 5 6 7 : 4( size of array) 4 5 6 7 ( elements in array)

然后我需要对其进行一些操作。
所有的 I/P 都是由用户输入的。仅给出其范围。

2 <= No of array <= 10 


1 <= Elements in array <= 1000000

以上我尝试了以下方法:

int main()
{
int no_of_array, size;
long int num;
int j = 0;

cin >> no_of_array;

第一种方式:

vector < vector<int> > array_vector[no_of_array];
while( no_of_array -- )
{
cin >>size;
for( int i = 0; i < size ; i++ )
{
cin >> num;
array_vector[j].push_back({num});
}
j++;
}
cout<< vector_array[1][2]; // Error

第二种方式:

vector< vector<int> > array_vector;
while( no_of_array --)
{
cin >> size;
for( int i = 0 ; i < size ; i++ )
{
cin >> num;
array_vector[j].push_back(num);
}
j++;
}
cout<< vector_array[1][2]; // Error

第三种方式:(工作)

vector<vector<int> > array_vector;
for( int i = 0 ; i < no_of_array ; i++ )
{
cin >> size;
vector<int> v;
for( int j = 0 ; j < size ; j++ )
{

cin >> num;
v.push_back(num);
}
array_vector.push_back(v);
}
cout<<array_vector[1][2]; // No Error

我在某处读到 vector of vector 的第三种方式不适合竞争性编程。为什么??
我用第一种两种方法遍历元素时犯了什么错误?

最佳答案

你可以试试下面的代码

int main(int argc,char* argv[])
{
unsigned int num;
int elm;
unsigned int size;

std::cout << "Enter the number of rows" << std::endl;
std::cin >> num;
std::vector<std::vector<int> > a(num,std::vector<int>(0,0));

for(unsigned int i=0;i<num;i++)
{
std::cout << "Enter the size of " << i+1 << "array:" << std::endl;
std::cin >> size;

for(unsigned int j=0;j<size;j++)
{
std::cout << "Enter the element" <<std::endl;
std::cin >> elm;

a[i].push_back(elm);
}
}

for(unsigned int i=0;i<a.size();i++)
{
for(unsigned int j=0;j<a[i].size();j++)
{
std::cout << "Element at [" <<i<<"][" <<j <<"] is " << a[i][j] <<std::endl;
}
}

return 0;
}

关于c++ - 使用 vector 的 vector 的多个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44997960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com