Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <map>
- #include <vector>
- class priority_queue {
- std::map<int, std::vector<std::string> > queue;
- public:
- void add(std::string str,int priority) {
- if(!queue[priority].empty()) {
- queue[priority].push_back(str);
- } else {
- std::vector<std::string> vec;
- vec.push_back(str);
- queue[priority] = vec;
- }
- }
- std::string remove() {
- if(!queue.begin()->second.empty()) {
- std::string temp = queue.begin()->second[0];
- queue.begin()->second.erase(queue.begin()->second.begin());
- if(queue.begin()->second.empty())
- queue.erase(queue.begin());
- return temp + "\n";
- }
- std::cout << "ERROR: QUEUE EMPTY!" << std::endl;
- return "";
- }
- };
- int main() {
- priority_queue q;
- q.add("X",10);
- q.add("Y",1);
- q.add("Z",3);
- std::cout << q.remove();
- std::cout << q.remove();
- std::cout << q.remove();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement