[英]Concatenate one row of a 2D vector into another row in C++
我有一个二维向量如下 -
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()).
有没有一种有效的方法来执行这个操作?
像这样的东西,也许:
v[0].insert(v[0].end(), v[1].begin(), v[1].end());
v[1].swap(v[2]);
v.pop_back();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.