【发布时间】:2020-11-09 01:26:14
【问题描述】:
我有一个如下的二维向量-
vector <vector<int> > v;
v.push_back({1, 2, 3});
v.push_back({4, 5});
v.push_back({6, 7, 8});
/*
row 0 - 1 2 3
row 1 - 4 5
row 2 - 6 7 8
*/
我想用尽可能少的操作将第 0 行末尾的第 1 行连接起来,这样最终的 2D 向量就变成了这个 -
/*
row 0 - 1 2 3 4 5
row 1 - 6 7 8
*/
这是我的算法,效率不高-
1) create a temporary 1D vector 't'.
2) push_back all the elements of row 2 into 't'.
3) erase row 1 using v.erase(v.begin()+1);
4) insert 't' at the end of row 0 - v[0].insert(v[0].end(), t.begin(), t.end()).
有没有一种有效的方法来执行这个操作?
【问题讨论】:
标签: c++ multidimensional-array vector concatenation stdvector