0 / 0 / 1
Регистрация: 05.03.2014
Сообщений: 94
1

Функция unique для list

13.01.2016, 13:31. Показов 3956. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Взято отсюда.
The second version (2), takes as argument a specific comparison function that determine the "uniqueness" of an element. In fact, any behavior can be implemented (and not only an equality comparison), but notice that the function will call binary_pred(*i,*(i-1)) for all pairs of elements (where i is an iterator to an element, starting from the second) and remove i from the list if the predicate returns true.

Так а что делать если нужно все-таки удалить i-1?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2016, 13:31
Ответы с готовыми решениями:

Функция unique
#include<iostream> #include<algorithm> #include<string> #include<vector> #include<conio.h>...

Функция insert для list
Задание: С помощью функции insert заполнить первый список элементами ранее созданного и...

Есть что то типа unique, но не для последовательно повторяющихся элементов из диапазона, а для всего диапазона?
list<string>a = { "aa","bb","ccc", "gg","eeee" ,"aa" }; list <string> ::iterator eudit...

Функция вставки в list
Вставить элемент Е после каждого элемента списка, превышающего некоторое значение Р. #include...

2
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
13.01.2016, 13:38 2
FortranDLL,
unique для list
с.unique();
Удаляет дубликаты последовательных элементов,
имеющих одинаковые значения
Что такое i-1? Итератор?

Добавлено через 2 минуты
Если да, то можно, например, --i вызвать. В двусвязном списке он, вроде бы, предусмотрен.
1
0 / 0 / 1
Регистрация: 05.03.2014
Сообщений: 94
13.01.2016, 13:46  [ТС] 3
Лучший ответ Сообщение было отмечено FortranDLL как решение

Решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// list::unique
#include <iostream>
#include <cmath>
#include <list>
 
// a binary predicate implemented as a function:
bool same_integral_part (double first, double second)
{ return ( int(first)==int(second) ); }
 
// a binary predicate implemented as a class:
struct is_near {
  bool operator() (double first, double second)
  { return (first-second<5.0); }
};
 
int main ()
{
  double mydoubles[]={ 12.15,  2.72, 73.0,  12.77,  3.14,
                       12.77, 73.35, 72.25, 15.3,  72.25 };
  std::list<double> mylist (mydoubles,mydoubles+10);
  
  mylist.sort();             //  2.72,  3.14, 12.15, 12.77, 12.77,
                             // 15.3,  72.25, 72.25, 73.0,  73.35
 
  mylist.unique();           //  2.72,  3.14, 12.15, 12.77
                             // 15.3,  72.25, 73.0,  73.35
 
  mylist.unique (same_integral_part);  //  2.72,  3.14, 12.15
                                       // 15.3,  72.25, 73.0
 
  mylist.unique (is_near());           //  2.72, 12.15, 72.25
 
  std::cout << "mylist contains:";
  for (std::list<double>::iterator it=mylist.begin(); it!=mylist.end(); ++it)
    std::cout << ' ' << *it;
  std::cout << '\n';
 
  return 0;
}
А можете пояснить на примере структуры is_near как это можно реализовать?
0
13.01.2016, 13:46
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2016, 13:46
Помогаю со студенческими работами здесь

Контейнеры (функция, которая бы помогла отсортировать контейнер List)
составить булевскую функцию, которая бы помогла отсортировать контейнер List. контейнер содержит...

STL list. Какая функция ищет указатель на элемент равный а ?
Есть список с элементами - объектами класса А. В классе А описан operator== (он нестандартный)....

Как минимально просто использовать функция std::find с последовательность типа : list<myClass*>
Добрый день. Как минимально просто использовать функция std::find с последовательность типа :...

unique constraint для пары колонок
Всем добрый вечер. Столкнулся с небольшой проблемой. Имеется табличка с такими полями: id - int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru