{"id":28079,"date":"2024-03-16T09:41:57","date_gmt":"2024-03-16T09:41:57","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/"},"modified":"2024-03-22T12:35:12","modified_gmt":"2024-03-22T12:35:12","slug":"what-is-the-purpose-of-the-lower_bound-function-in-c-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/","title":{"rendered":"What is the purpose of the lower_bound function in C++?"},"content":{"rendered":"<p>In C++, the lower_bound function is used to search for the insertion position of a particular value in sorted containers (such as vector, array, deque, set, etc.), or find the position of the first element greater than or equal to a given value.<\/p>\n<p>Specifically, the lower_bound function will return an iterator pointing to the first element in the container that is not less than the given value. If there is an element in the container that is equal to the given value, the lower_bound function will also return an iterator pointing to that element. If there is no element in the container that is not less than the given value, the lower_bound function will return an iterator pointing to the end of the container.<\/p>\n<p>The format for using the lower_bound function is as follows:<\/p>\n<pre class=\"post-pre\"><code>iterator lower_bound (iterator first, iterator last, const T&amp; val);\r\n<\/code><\/pre>\n<p>In this case, first and last are iterators that represent the range of the container, while val is the value to search for. The lower_bound function searches within the range of [first, last) and returns the iterator of the first element that is not less than val.<\/p>\n<p>Here is an example:<\/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;vector&gt;<\/span><\/span>\r\n<span class=\"hljs-meta\">#<span class=\"hljs-keyword\">include<\/span> <span class=\"hljs-string\">&lt;algorithm&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::vector&lt;<span class=\"hljs-type\">int<\/span>&gt; nums = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">7<\/span>, <span class=\"hljs-number\">9<\/span>};\r\n    <span class=\"hljs-type\">int<\/span> val = <span class=\"hljs-number\">4<\/span>;\r\n    \r\n    std::vector&lt;<span class=\"hljs-type\">int<\/span>&gt;::iterator it = std::<span class=\"hljs-built_in\">lower_bound<\/span>(nums.<span class=\"hljs-built_in\">begin<\/span>(), nums.<span class=\"hljs-built_in\">end<\/span>(), val);\r\n    \r\n    <span class=\"hljs-keyword\">if<\/span> (it != nums.<span class=\"hljs-built_in\">end<\/span>()) {\r\n        std::cout &lt;&lt; <span class=\"hljs-string\">\"The first element not less than \"<\/span> &lt;&lt; val &lt;&lt; <span class=\"hljs-string\">\" is \"<\/span> &lt;&lt; *it &lt;&lt; std::endl;\r\n    } <span class=\"hljs-keyword\">else<\/span> {\r\n        std::cout &lt;&lt; <span class=\"hljs-string\">\"No element not less than \"<\/span> &lt;&lt; val &lt;&lt; <span class=\"hljs-string\">\" in the vector\"<\/span> &lt;&lt; std::endl;\r\n    }\r\n    \r\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-number\">0<\/span>;\r\n}\r\n<\/code><\/pre>\n<p>The output is:<\/p>\n<pre class=\"post-pre\"><code>The first element not less than 4 is 5\r\n<\/code><\/pre>\n<p>In the above example, the lower_bound function searches for elements that are not less than 4, and returns an iterator pointing to 5.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, the lower_bound function is used to search for the insertion position of a particular value in sorted containers (such as vector, array, deque, set, etc.), or find the position of the first element greater than or equal to a given value. Specifically, the lower_bound function will return an iterator pointing to the first [&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-28079","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>What is the purpose of the lower_bound function 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\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"What is the purpose of the lower_bound function in C++?\" \/>\n<meta property=\"og:description\" content=\"In C++, the lower_bound function is used to search for the insertion position of a particular value in sorted containers (such as vector, array, deque, set, etc.), or find the position of the first element greater than or equal to a given value. Specifically, the lower_bound function will return an iterator pointing to the first [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/\" \/>\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:41:57+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-22T12:35:12+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=\"2 minutes\" \/>\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-purpose-of-the-lower_bound-function-in-c-2\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/\"},\"author\":{\"name\":\"Benjamin Taylor\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9\"},\"headline\":\"What is the purpose of the lower_bound function in C++?\",\"datePublished\":\"2024-03-16T09:41:57+00:00\",\"dateModified\":\"2024-03-22T12:35:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/\"},\"wordCount\":227,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/\",\"name\":\"What is the purpose of the lower_bound function in C++? - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-16T09:41:57+00:00\",\"dateModified\":\"2024-03-22T12:35:12+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"What is the purpose of the lower_bound function 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":"What is the purpose of the lower_bound function 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\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/","og_locale":"en_US","og_type":"article","og_title":"What is the purpose of the lower_bound function in C++?","og_description":"In C++, the lower_bound function is used to search for the insertion position of a particular value in sorted containers (such as vector, array, deque, set, etc.), or find the position of the first element greater than or equal to a given value. Specifically, the lower_bound function will return an iterator pointing to the first [&hellip;]","og_url":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-16T09:41:57+00:00","article_modified_time":"2024-03-22T12:35:12+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":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/"},"author":{"name":"Benjamin Taylor","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/ac801fe9549a25960ce48aa2e0a691c9"},"headline":"What is the purpose of the lower_bound function in C++?","datePublished":"2024-03-16T09:41:57+00:00","dateModified":"2024-03-22T12:35:12+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/"},"wordCount":227,"commentCount":0,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/","url":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/","name":"What is the purpose of the lower_bound function in C++? - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-16T09:41:57+00:00","dateModified":"2024-03-22T12:35:12+00:00","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/what-is-the-purpose-of-the-lower_bound-function-in-c-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"What is the purpose of the lower_bound function 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\/28079","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=28079"}],"version-history":[{"count":1,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28079\/revisions"}],"predecessor-version":[{"id":62353,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/28079\/revisions\/62353"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=28079"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=28079"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=28079"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}