Advertisement
Guest User

Untitled

a guest
Nov 14th, 2013
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. #include <iostream>
  2. #include <map>
  3. #include <vector>
  4.  
  5. class priority_queue {
  6.     std::map<int, std::vector<std::string> > queue;
  7. public:
  8.     void add(std::string str,int priority) {
  9.         if(!queue[priority].empty()) {
  10.             queue[priority].push_back(str);
  11.         } else {
  12.             std::vector<std::string> vec;
  13.             vec.push_back(str);
  14.             queue[priority] = vec;
  15.         }
  16.     }
  17.     std::string remove() {
  18.         if(!queue.begin()->second.empty()) {
  19.             std::string temp = queue.begin()->second[0];
  20.             queue.begin()->second.erase(queue.begin()->second.begin());
  21.             if(queue.begin()->second.empty())
  22.                 queue.erase(queue.begin());
  23.             return temp + "\n";
  24.         }
  25.         std::cout << "ERROR: QUEUE EMPTY!" << std::endl;
  26.         return "";
  27.     }
  28. };
  29.  
  30.  
  31. int main() {
  32.     priority_queue q;
  33.    
  34.     q.add("X",10);
  35.     q.add("Y",1);
  36.     q.add("Z",3);
  37.  
  38.     std::cout << q.remove();
  39.     std::cout << q.remove();
  40.     std::cout << q.remove();
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement