Очередь приоритетов: проблема C ++ с шаблонами типов элементов - PullRequest
0 голосов
/ 09 ноября 2018

Я делаю приоритетные очереди с шаблонами, но я довольно новичок в них, и они доставляют мне неприятности. Очередь с приоритетами работала без шаблонов, но я пытаюсь сделать ее универсальной для любого элемента в очереди. Заранее спасибо.

Я получаю две ошибки с примечанием для каждой ошибки: "шаблон кандидата проигнорирован: невозможно определить аргумент шаблона" ItemType ""

Вот код:

int main()
{
    int choice, item, priority;
    PriorityQueue pq; 
    do
    {
        cout<<"1.Insert\n";
        cout<<"2.Delete\n";
        cout<<"3.Display\n";
        cout<<"4.Quit\n";
        cout<<"Enter your choice : "; 
        cin>>choice;
        switch(choice)
        {
        case 1:
            cout<<"Input the item value to be added in the queue : ";
            cin>>item;
            cout<<"Enter its priority : ";
            cin>>priority;
            pq.insert(item, priority);
            break;
        case 2:
            pq.del();
            break;
        case 3:
            pq.display();
            break;
        case 4:
            break;
        default :
            cout<<"Wrong choice\n";
        }
    }
   while(choice != 4);
    return 0;
}

Это окно с ошибкой:

PQ.cpp: 99: 16: ошибка: отсутствует соответствующая функция-член для вызова 'del'

        pq.del();
        ~~~^~~

PQ.cpp: 44: 14: примечание: шаблон кандидата игнорируется: невозможно определить аргумент шаблона 'ItemType'

    void del()
         ^

PQ.cpp: 102: 16: ошибка: нет соответствующей функции-члена для вызова 'display'

        pq.display();
        ~~~^~~~~~~

PQ.cpp: 59: 14: примечание: шаблон кандидата игнорируется: невозможно определить аргумент шаблона 'ItemType'

    void display()
         ^

1 Ответ

0 голосов
/ 09 ноября 2018

Измените свои вызовы функций следующим образом:

pq.del<int>();
pq.display<int>();
pq.insert<int>(item, priority);
...