C++中两个向量之间的元素交换

Emr*_*koz 0 c++ arrays vector dynamic-arrays

我有一个有趣的问题.我在这里简化它.

我有一个包含的a = { 13, 56, 76, 24} 向量:另一个向量包含:b = { 2, 74, 16, 29}

我想交换价值观,让我们说562.所以我希望我的数组是:

a = {13, 2, 76, 24} b = {56, 74, 16, 29}

所以问题是:我向我的向量添加值,我push_back不知道这些值在每个向量中的存储位置.所以我知道2矢量中有某处,矢量中b56某处a.我该如何进行此更改?

jua*_*nza 9

  1. 使用std::find找到的每个向量中的元素
  2. 检查是否找到了元素
  3. 使用交换元素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);
Run Code Online (Sandbox Code Playgroud)