{"id":14128,"date":"2024-03-15T08:29:44","date_gmt":"2024-03-15T08:29:44","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/"},"modified":"2025-08-06T04:15:06","modified_gmt":"2025-08-06T04:15:06","slug":"what-is-the-definition-of-a-priority_queue-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/","title":{"rendered":"C++ priority_queue Definition Explained"},"content":{"rendered":"<p>In C++, the priority_queue is a container adapter that provides a way to access elements based on priority. It can be used to store a group of elements and sort them according to priority. The priority_queue class template is located in the <queue> header file and provides the following definition:<\/p>\n<pre class=\"post-pre\"><code><span class=\"hljs-keyword\">template<\/span> &lt;<span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">T<\/span>, <span class=\"hljs-keyword\">class<\/span> <span class=\"hljs-title class_\">Container<\/span> = vector&lt;T&gt;, <span class=\"hljs-keyword\">class<\/span> Compare = less&lt;<span class=\"hljs-keyword\">typename<\/span> Container::value_type&gt;&gt;\r\n<span class=\"hljs-keyword\">class<\/span> priority_queue;\r\n<\/code><\/pre>\n<p>Among them, T is the type of elements stored in the priority_queue, Container is the type of container used to store elements, defaulting to vector, and Compare is the predicate used to define element priority comparison, defaulting to std::less.<\/p>\n<p>The default sorting method of priority_queue is to arrange elements in either descending (by default) or ascending order based on the comparison Comparator&#8217;s requirements. This implies that in the default setting, the top element of the priority_queue is the largest element.<\/p>\n<p>The priority_queue class provides the following commonly used member functions:<\/p>\n<ol>\n<li>Insert element x into the priority_queue.<\/li>\n<li>Remove the top element with pop().<\/li>\n<li>top(): returns a reference to the top element.<\/li>\n<li>empty(): check if the priority queue is empty.<\/li>\n<li>size(): Returns the number of elements in the priority queue.<\/li>\n<\/ol>\n<p>It is important to note that the priority_queue does not provide iterators, so it is not possible to directly access the elements in the container. If you need to iterate through the elements, you can continuously use the pop() function to retrieve the top element one by one.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, the priority_queue is a container adapter that provides a way to access elements based on priority. It can be used to store a group of elements and sort them according to priority. The priority_queue class template is located in the header file and provides the following definition: template &lt;class T, class Container = [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","footnotes":""},"categories":[1],"tags":[8237,19026,19028,13149,19027],"class_list":["post-14128","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-c-data-structures","tag-c-priority_queue","tag-c-template","tag-priority-queue-implementation","tag-stl-container-adapter"],"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>C++ priority_queue Definition Explained - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Discover the C++ priority_queue definition, template parameters, and usage as a container adapter for prioritized element access.\" \/>\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\/what-is-the-definition-of-a-priority_queue-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ priority_queue Definition Explained\" \/>\n<meta property=\"og:description\" content=\"Discover the C++ priority_queue definition, template parameters, and usage as a container adapter for prioritized element access.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-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-15T08:29:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-06T04:15:06+00:00\" \/>\n<meta name=\"author\" content=\"Jackson Davis\" \/>\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=\"Jackson Davis\" \/>\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\/what-is-the-definition-of-a-priority_queue-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"C++ priority_queue Definition Explained\",\"datePublished\":\"2024-03-15T08:29:44+00:00\",\"dateModified\":\"2025-08-06T04:15:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/\"},\"wordCount\":240,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"C# data structures\",\"C++ priority_queue\",\"C++ template\",\"Priority queue implementation\",\"STL container adapter\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/\",\"name\":\"C++ priority_queue Definition Explained - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-15T08:29:44+00:00\",\"dateModified\":\"2025-08-06T04:15:06+00:00\",\"description\":\"Discover the C++ priority_queue definition, template parameters, and usage as a container adapter for prioritized element access.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ priority_queue Definition Explained\"}]},{\"@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\/55a10b8b0457c35884c25677889ad350\",\"name\":\"Jackson Davis\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g\",\"caption\":\"Jackson Davis\"},\"url\":\"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"C++ priority_queue Definition Explained - Blog - Silicon Cloud","description":"Discover the C++ priority_queue definition, template parameters, and usage as a container adapter for prioritized element access.","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\/what-is-the-definition-of-a-priority_queue-in-c\/","og_locale":"en_US","og_type":"article","og_title":"C++ priority_queue Definition Explained","og_description":"Discover the C++ priority_queue definition, template parameters, and usage as a container adapter for prioritized element access.","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-15T08:29:44+00:00","article_modified_time":"2025-08-06T04:15:06+00:00","author":"Jackson Davis","twitter_card":"summary_large_image","twitter_creator":"@SiliCloudGlobal","twitter_site":"@SiliCloudGlobal","twitter_misc":{"Written by":"Jackson Davis","Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"C++ priority_queue Definition Explained","datePublished":"2024-03-15T08:29:44+00:00","dateModified":"2025-08-06T04:15:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/"},"wordCount":240,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["C# data structures","C++ priority_queue","C++ template","Priority queue implementation","STL container adapter"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/","name":"C++ priority_queue Definition Explained - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-15T08:29:44+00:00","dateModified":"2025-08-06T04:15:06+00:00","description":"Discover the C++ priority_queue definition, template parameters, and usage as a container adapter for prioritized element access.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-definition-of-a-priority_queue-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C++ priority_queue Definition Explained"}]},{"@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\/55a10b8b0457c35884c25677889ad350","name":"Jackson Davis","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2fdb47d6df1226e92380d96973782572a97b0675d098bb914410dec348eb5d29?s=96&d=mm&r=g","caption":"Jackson Davis"},"url":"https:\/\/www.silicloud.com\/blog\/author\/jacksondavis\/"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14128","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\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/comments?post=14128"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14128\/revisions"}],"predecessor-version":[{"id":158149,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/14128\/revisions\/158149"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=14128"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=14128"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=14128"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}