Я создаю вектор внутри с несколькими элементами в C++, и я хочу удалить элементы вектора с теми же значениями. В принципе, я хочу удалить весь индекс вектора, в котором найден дублирующий элемент. Мой вектор называется человеком. Я пытаюсь сделать что-то вроде:Удалить дубликат элемента из вектора
for(int i=0; i < person.size(); i++){
if(i>0 && person.at(i) == person.at(0:i-1)) { // matlab operator
continue;
}
writeToFile(perason.at(i));
}
Как можно создать оператор 0: я-1, чтобы проверить все возможные комбинации индексов?
Edit: Я пытаюсь решение Garman, но я получил вопросы для каждого:
set<string> myset;
vector<string> outputvector;
for (string element:person)
{
if (myset.find(element) != myset.end())
{
myset.insert(element);
outputvector.emplace_back(element);
}
}
Вы можете выбрать вектор? – juanchopanza
Возможный дубликат [Удалить элементы из вектора C++, где условие удаления зависит от других элементов] (http://stackoverflow.com/questions/9412434/remove-elements-from-ac-vector-where-the-removal- condition-is-dependent-on-ot) – stijn
Нет, его действительно необходимо оставаться неподвижным. –