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

Функция unique для list - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Многопоточные функции http://www.cyberforum.ru/cpp-beginners/thread1637595.html
Написал программу, которая обрабатывает большой объём информации и столкнулся с проблемой производительности. Начал копать в сторону многопоточности, но есть несколько вопросов, ответ на которые не просто найти. Хочу спросить опытных программистов. Я пишу программу на С++ для шиндовс. 1.Существуют ли какие-то запреты на чтение\запись данных нескольких потоков из одного места? 2.Если...
C++ Матрица инцидентности, граф Привет всем. Очень прошу вас написать маленькую прогу на C++. Задача: По матрице инцидентности составить программу, которая проверяет - есть путь из такой-то вершины в такую-то или нет. Входные данные в виде переменных, как я понял: матрица инцидентности, 2 вершины. Матрицу можно взять любую, я взял от сюда: http://i.imgur.com/Nrc2Ait.jpg Вот сами входные данные - матрица и 2 вершины,... http://www.cyberforum.ru/cpp-beginners/thread1637570.html
Применение IntToStr к переменной типа long. Несовпадение исходных и конечных значений C++ Builder
Доброго времени суток. Даже не знаю, как коротко сформулировать вопрос, поэтому название дал теме несколько сумбурное. Имеется переменная типа long. В нее в процессе выполнения некоторой функции записывается значение. Выполняя программу в пошаговом режиме, смотрю её значение. Равно оно :0012F2B0 Это, если я правильно понял, действительное число в шестнадцатиричной системе счисления?...
Есть ли аналог remove_if для соседних элементов? C++
Задача такая. Пусть есть упорядоченный набор натуральных чисел. Пример: (15, 10, 3, 9, 7, 8, 2). Наборы элементов (15, 10) (10, 3) (3, 9) (9, 7) (7, 8) (8, 2) являются соседними. В наборе (3, 9) и (8, 2) 9 делится на 3, 8 делится на 2. Я хочу, чтобы элемент 3 и элемент 2 соответственно были удалены. Какую структуру лучше всего использовать? Vector? List? Или еще какую-нибудь? В List есть...
C++ Найти сумму всех натуральных чисел в заданном диапазоне http://www.cyberforum.ru/cpp-beginners/thread1637522.html
Доброе всем, время суток. Есть задачка на одном известном сайте. Нужно из одного файла взять целое число и посчитать сумму от единицы до конца числа, число может быть и отрицательным. Я тут нашел решение, но не совсем понял формулу, даже спрашивал у автора, он молчит. То что я тут нашел - сайт принимает как верный ответ. Но я все же написал свое решение. По факту оно выполняет все условия,...
C++ В двухмерном массиве сдвинуть ячейки влево вправо / вверх вниз Добрый день. Вот текст задачи: Создайте двухмерный массив. Заполните его случайными числами и покажите на экран. Пользователь выбирает количество сдвигов и положение (влево, вправо, вверх, вниз). Выполнить сдвиг массива и показать на экран полученный результат. Сдвиг циклический. Например, если мы имеем следующий массив 1 2 0 4 5 3 4 5 3 9 0 1 ... подробнее

Показать сообщение отдельно
FortranDLL
0 / 0 / 0
Регистрация: 05.03.2014
Сообщений: 94
13.01.2016, 13:46  [ТС]     Функция unique для list
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 как это можно реализовать?
 
Текущее время: 19:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru