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

Шаблон очереди с приоритетом и вложенным классом - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Можно ли задать такие параметры, чтоб в функции произошла ошибка? http://www.cyberforum.ru/cpp-beginners/thread1499997.html
class TMatrix; class TVector { public: double x; double y; double z; TVector operator * (const TMatrix &Turn); TVector operator * ( double k ); };
C++ WinAPI Как завершить дочернее приложение если родительское было завершено? Ситуация такая. Есть родительское приложение. Оно создаёт дочерний процесс, с которым общается через сокет. Иногда случается, что родительское приложение падает (проблемы разработки или просто сбои). Так вот нужно чтобы дочернее приложение завершалось автоматически, если родительское было завершено, но как такое проделать я не знаю. Просто сигналом из сокета об отсутствии соединеия... http://www.cyberforum.ru/cpp-beginners/thread1499202.html
Написание драйвера для мобильного модема C++
Уважаемые форумчане, кто занимался написанием драйверов для 3g либо 4g usb модема? Можете подсказать, к каким данным мы имеем доступ, то есть конкретно интересует возможность вывести в систему данные о сети (Cell ID, LAC, C1, C2, CRO)? Насколько я знаю, мобильный телефон на основе параметра вышки C2 решает переключиться ли ему к другой базовой станции. Возможно ли получить подобные данные от...
Как посмотреть код ассемблера в Visual Studio 2012? Visual Studio
Есть код программы на C++. Как посмотреть коды ассемблера для этой программы в MS Visual Studio 2012? Добавлено через 3 часа 15 минут Нашёл. Когда запускаешь трассировку программы, нажать ПКМ и выбрать пункт меню Go To Disassembly.
C++ Удаление файлов: типы и способы http://www.cyberforum.ru/cpp-beginners/thread1498584.html
Здравствуйте. Подозреваю что существует несколько методов удаления файлов. Удаление без изменения области памяти в которой хранилось что то (до записи нового файла на это место) и удаление с перезаписью. Подскажите так ли это? Существуют только такие методы удаления? Что из себя представляет удаление без перезаписи (какие именно действия производит ОС?)? Существуют ли API для "полного...
C++ Выделение памяти с помощью new под объекты без вызова их конструкторов здравствуйте, корректен ли следующий код: myClass* pttr = static_cast<myClass*>(::operator new(5 * sizeof(myClass))); for (int i = 0; i < 5; i++){ new(pttr+i) myClass(); } ::operator new(2*sizeof(myClass),pttr + 5); for (int i = 0; i < 5; i++){ (pttr + i)->~myClass(); подробнее

Показать сообщение отдельно
Lena86
0 / 0 / 0
Регистрация: 22.08.2014
Сообщений: 80
21.07.2015, 00:55     Шаблон очереди с приоритетом и вложенным классом
Доброго времени суток. Задание создать шаблонный класс очереди с приоритетом плюс с вложенным классом.
Реализовать возможность добавления, извлечения, получения без извлечения элементов и очистку очереди.

все вроде понятно, но реализовать на практике не могу. написала горе-код, прошу помочь довести до ума

Header.h

C++
1
2
3
4
5
#pragma once
#include <iostream>
#include <string>
#include <time.h>
using namespace std;

Priority.h

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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#pragma once
#include "Header.h"
 
template <class T, class P>
class PriorityQueue
{
    class Size
    {
 
        int MaxQueueLength;
        int QueueLength;
 
        friend class PriorityQueue<T>;
    };
    
    T *Wait;
    T *Pri;
        
public:
    PriorityQueue(int s);   
    ~PriorityQueue();
 
    void Add(T a, T b);
    T Extract();
    bool IsEmpty();
    bool IsFull();
    T GetCount();
    void Show();
    void Clear();
 
};
 
template <class T, class P>
PriorityQueue<T>::PriorityQueue(int s)
{
    MaxQueueLength=s;
    Wait=new int[MaxQueueLength];
    Pri=new int[MaxQueueLength];
    QueueLength=0;
}
 
template <class T, class P>
PriorityQueue<T>::~PriorityQueue()
{
    delete[]Pri;
    delete[]Wait;
}
 
template <class T, class P>
void PriorityQueue<T>::Show()
{
    for(int i=0; i<QueueLength; i++)
    {
        cout<<Wait[i]<<"-"<<Pri[i]<<"\n"<<endl;
    }
}
 
template <class T, class P>
void PriorityQueue<T>::Clear()
{
    QueueLength=0;
}
 
template <class T, class P>
bool PriorityQueue<T>::IsEmpty()
{
    return QueueLength==0;
}
 
template <class T, class P>
bool PriorityQueue<T>::IsFull()
{
    return QueueLength==MaxQueueLength;
}
 
template <class T, class P>
T PriorityQueue<T>::GetCount()
{
    return QueueLength;
}
 
template <class T, class P>
void PriorityQueue<T>::Add(T a, T b)
{
    if(!IsFull())
    {
       Wait=a;
       Pri[QueueLength]=b;
       QueueLength++;
    }
}
 
template <class T, class P>
 T PriorityQueue<T>::Extract()
{
    if(!IsEmpty)
    {
    int max_pri=Pri[0];
    int pos_max_pri=0;
 
    for(int i=1; i<QueueLength;i++)
    {
        if(max_pri<Pri[i])
        {
            max_pri=Pri[i];
            pos_max_pri=i;
        }
        int temp1=Wait[pos_max_pri];
        int temp2=Pri[pos_max_pri];
 
        for(int i=pos_max_pri; i<QueueLength-1;i++)
        {
            Wait[i]=Wait[i+1];
            Pri[i]=Pri[i+1];
        }
        QueueLength--;
        return temp1;
    }
    }
    else return -1;
 
}


main.cpp

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "Header.h"
#include "Priority.h"
 
void main()
{
    srand(time(0));
    PriorityQueue <int> QUP(25);
 
    for(int i=0;i<5;i++)
    {
    QUP.Add(rand()%100, rand()%12);
    }
 
    QUP.Show();
 
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 10:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru