3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
1

Алгоритм unique

14.07.2011, 12:17. Показов 23703. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <algorithm>
#include <list>
using namespace std;
 
 
int main() {
  list<int> p(5,6);
  
  
  unique(p.begin(),p.end());
  cout << p.size();
 
 
 
  
  return 0;
}
Почему дубликаты из алгоритма unique не удаляются?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.07.2011, 12:17
Ответы с готовыми решениями:

Unique() в shared_ptr
Привет. что-то ошибку выдает в функции unique() для shared_ptr. Если написать == 0, то всё норм...

Функция unique
#include&lt;iostream&gt; #include&lt;algorithm&gt; #include&lt;string&gt; #include&lt;vector&gt; #include&lt;conio.h&gt;...

Unique: почему не удаляется Point(1,2)?
Добрый вечер, почему не удаляется Point(1,2) ? %-) #include &lt;algorithm&gt; #include...

Функция unique для list
Взято отсюда. The second version (2), takes as argument a specific comparison function that...

5
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
14.07.2011, 12:23 2
Алгоритм unique возвращает указатель на новый конец контейнера, тут все подробно описано: http://www.cplusplus.com/refer... hm/unique/

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
std::list <int> p(5, 6);
std::list <int> :: iterator pend = std::unique(p.begin(), p.end());
 
p.resize(pend - p.begin());
std::cout << p.size();
 
std::cout << std::endl;
std::copy(p.begin(), p.end() /*or pend */, std::ostream_iterator <int> (std::cout, " "));
1
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
14.07.2011, 12:27 3
Для этого есть метод у списка, unique.
C++
1
2
list<int> p(5,6);
p.unique();
0
Заблокирован
14.07.2011, 12:29 4
The resulting range consists of the elements between first and the iterator returned by the function, which points to the new end of range. The elements past the new end of range are still valid, although with unspecified values

C++
1
2
3
4
for (list<int>::const_iterator it = p.begin(); it != unique(p.begin(),p.end()); it++)
  {
      cout << *it << endl;;
  }
0
3 / 8 / 1
Регистрация: 12.07.2009
Сообщений: 361
14.07.2011, 21:05  [ТС] 5
Цитата Сообщение от neske Посмотреть сообщение
Алгоритм unique возвращает указатель на новый конец контейнера, тут все подробно описано: http://www.cplusplus.com/refer... hm/unique/

Добавлено через 1 минуту
C++
1
2
3
4
5
6
7
8
std::list <int> p(5, 6);
std::list <int> :: iterator pend = std::unique(p.begin(), p.end());
 
p.resize(pend - p.begin());
std::cout << p.size();
 
std::cout << std::endl;
std::copy(p.begin(), p.end() /*or pend */, std::ostream_iterator <int> (std::cout, " "));
Вот я немного подкоректировал теперь готов алгоритм.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
 
 
int main() {
  int r;
  vector<int> p(5,6);
  p[0] = 12;
  vector<int>::iterator pend = unique(p.begin(), p.end()),u;
  r = pend - p.begin();
  u = pend;
  pend -= r;
  copy(pend,u,p.begin());
  p.resize(r);
  cout << p[0] << ' ' << p[1];
 
  return 0;
}
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
14.07.2011, 21:59 6
Цитата Сообщение от ElvenDragon Посмотреть сообщение
Вот я немного подкоректировал теперь готов алгоритм.
угу, подкоректировали, непридумали велосипедов)
0
14.07.2011, 21:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.07.2011, 21:59
Помогаю со студенческими работами здесь

Использование алгоритма STL unique в map
Напишите пожалуйста простой пример в коде Использование алгоритма STL unique в map я знаю что он...

Нужен алгоритм поиска пути в этом лабиринте (будь то волновой алгоритм или алгоритм правой/левой руки )
#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; void lab...

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

Unique ptr в классе
Добрый вечер, есть ли реальное решение придерживаться правилу нуля и иметь в классе...


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

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

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