繁体   English   中英

将二维向量的一行连接到 C++ 中的另一行

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM