Я пишу программу, которая читает текстовый файл в форме ниже, импортирует данные в вектор, а затем выполняет некоторые вычисления с ним. На данный момент я могу импортировать свои данные попарно, вставлять их в вектор и сортировать вектор. Однако все мои усилия потерпели неудачу, когда дело дошло до фактического удаления дубликатов, чтобы я мог использовать вектор для других целей.Как удалить дубликаты из вектора?
1 4
5 6
4 5
4 5
5 4
6 7
...
В настоящее время это мой соответствующий код прямо сейчас. Если я делаю vec1.size() на векторе выше (только 6 строк), выход должен быть 5. Однако, каждый текстовый файл, который я пытаюсь получить, я получаю вывод 1, я не понимаю, почему ..
while(getline(fs1, instrng)) {
istringstream s1(instrng);
int a, b;
s1 >> a >> b;
pair<int,int> pair1 = make_pair(a,b);
vec1.push_back(pair1);
sort(vec1.begin(), myvec1.end());
auto last = std::unique(vec1.begin(), vec1.end());
vec1.erase(last, vec1.end());
Используйте ['std :: unique'] (http://en.cppreference.com/w/cpp/algorithm/unique). – juanchopanza
@juanchopanza, вы должны были опубликовать это как ответ – Zaffy
@ Zaffy Я этого не сделал, потому что уже столько дубликатов. – juanchopanza