[英]Element exchange between two vectors in C++
我有一个有趣的问题。 我在这里简化它。
我有一个向量包含: a = { 13, 56, 76, 24}
另一个向量包含: b = { 2, 74, 16, 29}
我想交换值,比如说56
和2
。 所以我希望我的数组是:
a = {13, 2, 76, 24}
b = {56, 74, 16, 29}
所以问题是:我使用push_back
将值添加到向量中,但我不知道这些值在每个向量中的存储位置。 所以我知道向量b
某处有2
,向量b
某处有56
a
。 我如何执行此更改?
std::find
查找每个向量中的元素 std::iter_swap
交换元素。 例:
auto ita = std::find(a.begin(), a.end(), 56);
auto itb = std::find(b.begin(), b.end(), 2);
if (ita != a.end() && itb != b.end())
std::iter_swap(ita, itb);
std::vector<int>::iterator it56 = std::find( vec56.begin(), vec56.end(), 56);
std::vector<int>::iterator it2 = std::find( vec2.begin(), vec2.end(), 2);
if ( it56 != vec56.end() && it2 != vec2.end()) {
*it56 = 2;
*it2 = 56
// or: std::iter_swap(it56, it2);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.