Я хотел бы знать, могу ли я переместить элементы в другой вектор в зависимости от того, что есть в векторе. Так, например, у меня есть три вектора. Очки, Player1 и Player1type. Вектор точек содержит целые числа, тип player1 содержит строки, а элемент player1 должен иметь числа из вектора точек.
int main() {
vector <int> points {1,2,3,4,5};
vector <string> player1type {"Power1", "Steal", "Power2", "Steal", "Power1"};
vector <int> player1 {1,1,1,1,1};
move(points.begin(), points.end(), player1.begin());
return 0;
}
Как видно из приведенного выше кода, он просто перемещает элементы в указывает на player1, заменяя элементы, которые уже находятся в player1. Я хочу, чтобы элементы двигались, если в player1type нет элементов Steal. Таким образом, это было бы так:
player1type = {"Power1", "Steal", "Power2" ,"Steal", "Power1"};
Player1 = {1,3,5};
Я пытался реализовать это, но я не могу заставить его работать.
int main() {
vector <int> points {1,2,3,4,5};
vector <string> player1type {"Power1", "Steal", "Power2", "Steal", "Power1"};
vector <int> player1 {1,1,1,1,1};
if (!player1type.empty() && player1type[0] == "Power1") {
move(points.begin(), points.end(), player1.begin());
}
else if (!player1type.empty() && player1type[0] == "Power2") {
move(points.begin(), points.end(), player1.begin());
}
else {
cout << "Can't apply this sorry" << endl;
}
return 0;
}
Кажется, это не работает, все это добавляет это в числах независимо от заявлений.