Я думаю, что этот пример может решить то, что вы сказали: «Если в vector1 есть число 2, тогда переместите его в vector2». «В противном случае переместите номер 3.»
bool move_vec(vector<int>& v1, vector<int>& v2, int x) {
int cnt = 0;
vector<int>::iterator it = v1.begin();
while (it != v1.end()) {
if (*it == x) {
++cnt;
it = v1.erase(it);
} else {
++it;
}
}
v2.insert(v2.end(), cnt, x);
return cnt != 0;
}
vector<int>a = { 1,2,3,4,5,1,2,3,4,5 }, b = { 1,1,1 };
int main() {
if (!move_vec(a, b, 2))
move_vec(a, b, 3);
return 0;
}