Мне нужно переместить все элементы, которые содержат CPU_type
в начале вектора. Как это сделать? Я знаю, что я использую метод перемещения неправильно.
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <fstream>
struct T {
int number;
std::string CPU_type;
int size_of_hard_drive;
int size_of_RAM;
};
using namespace std;
int main() {
int n;
cin >> n;
vector <T> v(n);
for (int i = 0; i < n; i++) {
cin >> v[i].number >> v[i].CPU_type >> v[i].size_of_hard_drive >> v[i].size_of_RAM;
}
string type_of_CPU_to_move_forward;
cin >> type_of_CPU_to_move_forward;
vector <T> ::iterator it;
for (it = v.begin(); it != v.end(); ++it) {
if ((*it).CPU_type == type_of_CPU_to_move_forward) {
vector <T> ::iterator it1 = it;
move(it1, it1, v.begin());
}
}
return 0;
}