使用向量的向量的多个数组

图沙尔

我想使用向量的向量插入多个数组。
对于那个 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         

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

哈利

你可以试试下面的代码

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;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在多个数组上的向量化结构过滤Matlab

来自分类Dev

在C ++中使用向量数组的向量

来自分类Dev

使用粘贴折叠多个向量

来自分类Dev

使用向量更改多个列名

来自分类Dev

如何使用结构向量数组?

来自分类Dev

向量数组

来自分类Dev

向量数组还是数组向量?

来自分类Dev

如何在R中使用相同的循环向量引用多个数据库?

来自分类Dev

向量数组中的向量比较

来自分类Dev

C ++ 11中多个数值类型的向量

来自分类Dev

将多个数据框列转换为数值向量

来自分类Dev

从第一列或多个数据创建列表/向量

来自分类Dev

总结来自多个数据帧的向量

来自分类Dev

如何在Julia中某个数组的列上添加向量?

来自分类Dev

如何从 Scala 密集向量中提取两个数组

来自分类Dev

将Point的向量和int的向量保持在一个数组的结构中

来自分类Dev

使用CUBLAS进行多个矩阵向量调用

来自分类Dev

使用grepl从向量中排除多个单词

来自分类Dev

使用get获得包含多个向量的列表

来自分类Dev

使用向量的r子集数组

来自分类Dev

尝试使用向量数组实现图

来自分类Dev

关于使用数组和位向量的集合

来自分类Dev

C ++对许多项目使用数组或向量

来自分类Dev

什么时候使用向量而不是数组?

来自分类Dev

使用pthread处理数组/向量的部分

来自分类Dev

如何多态使用指针的数组或向量?

来自分类Dev

使用Cilk数组符号和STL向量

来自分类Dev

使用向量来选择matlab数组的列

来自分类Dev

使用numpy数组向量化函数