如何将两个向量的向量沿行合并?

时间:2019-04-28 20:01:36

标签: c++ algorithm stdvector

我试图沿着行将向量的向量附加到向量的另一个向量,就像4x4向量变成4x8 (不是8x4行/列)。

我需要说明4x8

Grid是一个由Square对象组成的对象。

Grid CombineGrid(Grid one, Grid two)
{
    vector<vector<Square>> gridOne = one.fields;
    vector<vector<Square>> gridTwo = two.fields;
    vector<vector<Square>> temp;
    int reqCol = one.columns + two.columns, reqRow = one.rows + one.rows;
    temp = gridOne;

    temp.insert(temp.end(), gridTwo.begin(), gridTwo.end());

    for (const auto &row : temp)
    {
        for (Square x:row) 
        {
            cout << "y" << ' ';
            cout << endl;
        }
    }
    Grid finalGrid(one.columns + two.columns, two.rows + two.rows);
    finalGrid.fields = temp;

    return finalGrid;
}

1 个答案:

答案 0 :(得分:1)

您是否想将gridOne [0](第一个vect的第一个元素)与gridTwo [0](第二个vect的第一个元素)连接起来,对其他元素是否也是如此? 如果答案是肯定的,则可以尝试以下方法:

   size_t grid1Size = gridOne.size();
   for (size_t i = 0; i < grid1Size; i++)
   {
      if(i > gridTwo.size())
      {
         gridTwo.push_back(gridOne[i]);
      }
      else
      {
         gridTwo[i].insert(gridTwo[i].end(), gridOne[i].begin(), gridOne[i].end() );
      }
   }