Форум программистов, компьютерный форум CyberForum.ru

Найти все повторяющиеся элементы вектора - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ написать класс на С++ восьмиугольник в круге http://www.cyberforum.ru/cpp-beginners/thread1001392.html
Всем привет. Нужна ваша помощь. Нужно создать класс на С++ восьмиугольник в круге в режиме form. Кто знает, подскажите или может у когото есть уже код. Очень нужно. Буду очень благодарен.
C++ как работают эти 4 функции Подскажите как работают эти 4 функции CTime CTime::operator ++() CTime CTime::operator --() CTime CTime::operator ++(int) CTime CTime::operator -- http://www.cyberforum.ru/cpp-beginners/thread1001386.html
C++ Необъявленный идентификатор, преобразование "int" в "float"
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <conio.h> #define N 50 #define M 50 int n,m,i,j,k,r; void massiv(int e); void massiv(int d); float a; float b;
Преобразование матрицы C++
Дана матрица размера M × N. Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждой строке. Не могу поменять местами max и min элементы с строке матрицы #include <iostream.h> #include <math.h> int main () { int n,m,a,i,j,max,min,temp; cin>>n; cin>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++)
C++ Как сделать, чтобы при перезагрузке данные занесённые программой в реестр не удалялись? http://www.cyberforum.ru/cpp-beginners/thread1001370.html
При перезагрузке данные занесённые программой в реестр удаляются. Как это изменить подскажи плис?
C++ noexcept возвращает значение? Прототип std::swap выглядит так: template <class T, size_t N> void swap(T (&a), T (&b)) noexcept (noexcept(swap(*a,*b))); Получается, если элемент массива может возбудить исключение, то вложенный noexcept возвращает значение, приводимое к bool? Или вообще как понять все, что после списка параметров функции? подробнее

Показать сообщение отдельно
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 320
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
08.11.2013, 14:26     Найти все повторяющиеся элементы вектора
Алгоритмизма ради.
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
40
41
42
43
44
45
#include <iostream>
#include <algorithm>
#include <vector>
#include <iterator>
#include <functional>
 
template<typename Iterator, typename Compare = std::equal_to<typename std::iterator_traits<Iterator>::value_type>>
std::pair<Iterator, Iterator> find_next_sequence(Iterator first, Iterator last, Compare cmp = Compare())
{
   Iterator current = first;
   while (current != last)
   {
      Iterator next = std::next(current);
      if (next == last || *current != *next)
      {
         break;
      }
      ++current;
   }
   return std::make_pair(first, std::next(current));
}
 
int main()
{
   std::vector<int> v = {1,1,1,2,2,3,4,4,4,4,1,1,3};
   std::vector<std::pair<int, int>> result;
   for (auto pos = v.begin(); pos != v.end();)
   {
      auto range = find_next_sequence(pos, v.end());
      result.emplace_back(*range.first, std::distance(range.first, range.second));
      pos = range.second;
   }
   for (const auto& p : result)
   {
      if (p.second == 1)
      {
         std::cout << p.first << " ";
      }
      else
      {
         std::cout << p.first << " " << p.second << " ";
      }
   }
   std::cout << std::endl;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru