{"id":28170,"date":"2024-03-16T09:52:45","date_gmt":"2024-03-16T09:52:45","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/"},"modified":"2024-03-22T12:48:14","modified_gmt":"2024-03-22T12:48:14","slug":"how-is-the-priority_queue-used-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/","title":{"rendered":"How is the priority_queue used in C++?"},"content":{"rendered":"<p>In C++, a priority_queue is a container adaptor that implements a priority queue. A priority queue is a special type of container where each element has a priority. Unlike a regular queue, the elements in a priority queue are sorted by priority rather than by the order of insertion.<\/p>\n<p>You can include the priority_queue template class in your code using the following code in the header file.<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;queue&gt;<\/span><\/span>\r\n<\/code><\/pre>\n<p>Common methods and operations of a priority queue include:<\/p>\n<ol>\n<li>Insert the element into the priority queue using push(element).<\/li>\n<li>pop(): Removes the top element from the priority queue.<\/li>\n<li>top(): Access the top element in the priority queue.<\/li>\n<li>size(): returns the number of elements in the priority queue.<\/li>\n<li>empty(): Check if the priority queue is empty.<\/li>\n<\/ol>\n<p>Elements in a priority queue are sorted by default based on the &#8220;<\" operator of the element type, so the element type must support comparison using the \"<\" operator. Alternatively, you can change the sorting rule of elements by passing a custom comparison function.<\/p>\n<p>Here is a simple example using a priority_queue:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;iostream&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;queue&gt;<\/span><\/span>\r\n\r\n<span class=\"hljs-function\"><span class=\"hljs-type\">int<\/span> <span class=\"hljs-title\">main<\/span><span class=\"hljs-params\">()<\/span> <\/span>{\r\n    std::priority_queue&lt;<span class=\"hljs-type\">int<\/span>&gt; pq;\r\n\r\n    pq.<span class=\"hljs-built_in\">push<\/span>(<span class=\"hljs-number\">10<\/span>);\r\n    pq.<span class=\"hljs-built_in\">push<\/span>(<span class=\"hljs-number\">5<\/span>);\r\n    pq.<span class=\"hljs-built_in\">push<\/span>(<span class=\"hljs-number\">15<\/span>);\r\n\r\n    std::cout &lt;&lt; <span class=\"hljs-string\">\"Size of priority queue: \"<\/span> &lt;&lt; pq.<span class=\"hljs-built_in\">size<\/span>() &lt;&lt; std::endl;\r\n    std::cout &lt;&lt; <span class=\"hljs-string\">\"Top element: \"<\/span> &lt;&lt; pq.<span class=\"hljs-built_in\">top<\/span>() &lt;&lt; std::endl;\r\n\r\n    pq.<span class=\"hljs-built_in\">pop<\/span>();\r\n\r\n    std::cout &lt;&lt; <span class=\"hljs-string\">\"Size of priority queue after pop: \"<\/span> &lt;&lt; pq.<span class=\"hljs-built_in\">size<\/span>() &lt;&lt; std::endl;\r\n    std::cout &lt;&lt; <span class=\"hljs-string\">\"New top element: \"<\/span> &lt;&lt; pq.<span class=\"hljs-built_in\">top<\/span>() &lt;&lt; std::endl;\r\n\r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>This example creates a priority_queue that stores integers. It then inserts three integers and prints the size of the queue and the top element. Next, it pops an element from the queue and prints the size of the queue again along with the new top element.<\/p>\n<p>The output is:<\/p>\n<pre class=\"post-pre\"><code>Size of priority queue: 3\r\nTop element: 15\r\nSize of priority queue after pop: 2\r\nNew top element: 10\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>In C++, a priority_queue is a container adaptor that implements a priority queue. A priority queue is a special type of container where each element has a priority. Unlike a regular queue, the elements in a priority queue are sorted by priority rather than by the order of insertion. You can include the priority_queue template [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[],"class_list":["post-28170","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How is the priority_queue used in C++? - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How is the priority_queue used in C++?\" \/>\n<meta property=\"og:description\" content=\"In C++, a priority_queue is a container adaptor that implements a priority queue. A priority queue is a special type of container where each element has a priority. Unlike a regular queue, the elements in a priority queue are sorted by priority rather than by the order of insertion. You can include the priority_queue template [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\" \/>\n<meta property=\"article:published_time\" content=\"2024-03-16T09:52:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T12:48:14+00:00\" \/>\n<meta name=\"author\" content=\"Benjamin Taylor\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:site\" content=\"@SiliCloudGlobal\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Benjamin Taylor\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"How is the priority_queue used in C++?\",\"datePublished\":\"2024-03-16T09:52:45+00:00\",\"dateModified\":\"2024-03-22T12:48:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/\"},\"wordCount\":144,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/\",\"name\":\"How is the priority_queue used in C++? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T09:52:45+00:00\",\"dateModified\":\"2024-03-22T12:48:14+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How is the priority_queue used in C++?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"name\":\"Silicon Cloud Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\",\"name\":\"Silicon Cloud Blog\",\"url\":\"https:\/\/www.silicloud.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"contentUrl\":\"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png\",\"width\":1024,\"height\":1024,\"caption\":\"Silicon Cloud Blog\"},\"image\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/SiliCloudGlobal\/\",\"https:\/\/twitter.com\/SiliCloudGlobal\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\",\"name\":\"Benjamin Taylor\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g\",\"caption\":\"Benjamin Taylor\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How is the priority_queue used in C++? - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/","og_locale":"en_US","og_type":"article","og_title":"How is the priority_queue used in C++?","og_description":"In C++, a priority_queue is a container adaptor that implements a priority queue. A priority queue is a special type of container where each element has a priority. Unlike a regular queue, the elements in a priority queue are sorted by priority rather than by the order of insertion. You can include the priority_queue template [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T09:52:45+00:00","article_modified_time":"2024-03-22T12:48:14+00:00","author":"Benjamin Taylor","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Benjamin Taylor","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"How is the priority_queue used in C++?","datePublished":"2024-03-16T09:52:45+00:00","dateModified":"2024-03-22T12:48:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/"},"wordCount":144,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/","name":"How is the priority_queue used in C++? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T09:52:45+00:00","dateModified":"2024-03-22T12:48:14+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-is-the-priority_queue-used-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How is the priority_queue used in C++?"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/blog\/#website","url":"https:\/\/www.silicloud.com\/blog\/","name":"Silicon Cloud Blog","description":"","publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.silicloud.com\/blog\/#organization","name":"Silicon Cloud Blog","url":"https:\/\/www.silicloud.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","contentUrl":"https:\/\/www.silicloud.com\/blog\/wp-content\/uploads\/2023\/11\/EN-SILICON-Full.png","width":1024,"height":1024,"caption":"Silicon Cloud Blog"},"image":{"@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/SiliCloudGlobal\/","https:\/\/twitter.com\/SiliCloudGlobal"]},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9","name":"Benjamin Taylor","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ec2e3d3e2d525fd148047c4520ae7c1cdccd1f4b48a1a488422b31f04f345c14?s=96&d=mm&r=g","caption":"Benjamin Taylor"},"url":"https:\/\/www.silicloud.com\/blog\/author\/benjamintaylor\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=28170"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28170\/revisions"}],"predecessor-version":[{"id":62449,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28170\/revisions\/62449"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=28170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=28170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=28170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}