Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/21: Рейтинг темы: голосов - 21, средняя оценка - 4.95
2 / 2 / 1
Регистрация: 25.10.2012
Сообщений: 42

STL, очередь с приоритетом

29.09.2013, 19:55. Показов 4030. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
у меня есть очередь с приоритетом, есть функции ввода и вывода
в функции MinE после того как я нашел минимальный элемент, мне нужно добавить этот элемент в заданную позицию контейнера, я не знаю как это сделать

и еще в функции SerA после того как я нашел среднее арифметическое, мне нужно удалить все элементы которые больше этого среднего арифметического, я не знаю как это сделать

Помогите пожалуйста

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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#include <iostream>
#include <queue>
#include <deque>
#include <vector>
#include <conio.h>
#include <algorithm>
 
 
using namespace std;
 
void inp(priority_queue<float,vector<float> >  &q) 
{    int n; 
     float a;
    
    cout<<"How many elements insert ? "<<endl;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a;
        
         q.push(a);
 
    }
    cout<<q.size();
 
};
 
void out(priority_queue<float,vector<float> > q)
{
    cout << "\nOchered\n";
float w;
        while (! q.empty()) 
        { 
            w =  q.top();  
            cout << w << endl;
             q.pop(); 
        }
        cout<<"\n";
    
 
};
 
void MinE(priority_queue<float,vector<float> >  q)
{
    priority_queue <float, vector<float> > tmp = q;
 
        float min = tmp.top();
        int size = tmp.size();
    
        for (int i = 0; i < size; i++)
        {
            
            if (tmp.top() < min)
                min = tmp.top();
            tmp.pop();
        }
    
 
        cout << "\nMin: " << min  << endl;
        
    
        out(q);
};
 
void SerA(priority_queue<float,vector<float> >  q){
    
        priority_queue<float, vector<float> > tmp = q;
        int size = q.size();
        float sum=0, sr;
        for(int i = 0; i < size; i ++)
        {
            sum = sum+tmp.top();
            tmp.pop();
        }
        sr = sum / size;
        cout << "\nSer ar: " << sr <<  endl;
 
        out(q);
 
        
};
 
 
       int main()
{      
priority_queue<float,vector<float> > q;
    inp(q);
    out(q);
    MinE(q);
    SerA(q);
        getch();
    return 0;
};
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
29.09.2013, 19:55
Ответы с готовыми решениями:

Очередь с приоритетом из STL
Объясните зачем при объявлении priority_queue в качестве шаблона указывают вектор ? В чем разница между : priority_queue &lt;string&gt;...

Библиотека STL: очередь с приоритетом
Пытаюсь реализовать очередь с приоритетом, два класса ВИП- персона и простая персона. для этого создал два класса и запихнул потом обьекты...

Как загнать в STL очередь объекты другого класса с приоритетом?
В общем есть класс class Clientсo { char first_name; char last_name; bool sex; int age; int ID;

1
 Аватар для DiffEreD
1458 / 795 / 257
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
30.09.2013, 01:03
Я бы что такое написал:
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <iterator>
#include <functional>
#include <queue>
 
template<typename T>
void input(std::priority_queue<T>& q, std::istream& is = std::cin)
{
   std::cout << "Enter numbers to fill the queue (any letter to stop):\n->";
   q = std::move(std::priority_queue<T>(std::istream_iterator<T>(is), std::istream_iterator<T>()));
}
 
template<typename T>
void print(std::priority_queue<T> q)
{
   while(!q.empty())
   {
      std::cout << q.top() << " ";
      q.pop();
   }
   std::cout << std::endl;
}
 
template<typename T>
T min_elem(std::priority_queue<T> q)
{
   T min = q.top();
   q.pop();
   while (!q.empty())
   {
      if(min > q.top())
         min = q.top();
      q.pop();
   }
   return min;
}
 
template<typename T>
T average(std::priority_queue<T> q)
{
   size_t size = q.size();
   T temp = 0;
   while (!q.empty())
   {
      temp += q.top();
      q.pop();
   }
   return temp / size;
}
 
template<typename T, typename Compare>
std::priority_queue<T> erase(std::priority_queue<T> q, T elem, Compare comp)
{
   std::priority_queue<T> result;
   while (!q.empty())
   {
      if(comp(q.top(), elem)) q.pop();
      else
      {
         result.push(q.top());
         q.pop();
      }
   }
   return result;
}
 
int main()
{
   std::priority_queue<int> pq;
   input(pq);
   print(pq);
   std::cout << "Min element is: " << min_elem(pq) << std::endl;
   int aver = average(pq);
   std::cout << "Average is: " << aver << std::endl;
   pq = erase(pq, aver, std::greater<int>());
   print(pq);
 
   std::cout << "\nDone." << std::endl;
   return 0;
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
30.09.2013, 01:03
Помогаю со студенческими работами здесь

Задача по STL (Создать объект-контейнер, очередь с приоритетом, заполнить ее данными, тип char)
Помогите,пожалуйста, заранее спасибо)) Вот задание: 1. Создать объект-контейнер, очередь с приоритетом, заполнить ее данными, тип...

Очередь с приоритетом. Элементы с наивысшим приоритетом ставятся в начало очереди, с наименьшим – в конец
Здравствуйте! имеется задание: создать очередь с приоритетом (у каждого элемента свой приоритет). Элементы с наивысшим приоритетом ставятся...

Очередь (сделать очередь, чтобы добавляло, удаляло, читало. Не STL.)
Помогите пожалуйста написать очередь. Есть Температура double и ее тип int ну и нужно сделать очередь, чтобы добавляло, удаляло, читало....

Очередь с приоритетом
У меня есть задание: 9. Разработать шаблон класса для работы с очередью с приоритетами, выполненной в виде односвязного списка. Тип...

Очередь с приоритетом
как реализовать очередь с приоритетом на бинарной куче?при том нужно графически вывести на консоль т.к я поняла графический вывод...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru