• 将二维数组的元素放入哈希表中出错
  • 其它

我想把一个二维数组中的元素放入哈希表中,数组中的所有元素作为主键,值都是1,代码如下

vector<int> printMatrix(vector<vector<int> > matrix)
{
   //第一种
   multimap<int,int> hash;
   for(auto i:matrix)
   {
       for(auto j:matrix[i])
       hash.insert (pair<int,int>(j,1));
   }
   //第二种
   for(int i=0;i<matrix.size ();++i)
       for(int j=0;j<matrix[i].size ;++j)
           hash.insert (pair<int,int>(j,1));
}

我想用for(auto i:matrix)的方式来遍历数组,但是在 for(auto j:matrix[i])这里报错
1 IntelliSense: 没有与这些操作数匹配的 "[]" 运算符
操作数类型为: std::vector>, std::allocator>>> [ std::vector> ]

我又试了一下正常的for循环遍历,却没有问题。讲道理,上下两种方法应该是等价的,为啥第一个会报错呢?


  • TIMI    2020-04-22 10:56:52
  • 阅读 785    收藏 0    回答 1
  • 邀请
  • 收藏
  • 分享
发送
登录 后发表评论
  • 51testing软件测试圈微信