{"id":8404,"date":"2024-03-14T08:05:00","date_gmt":"2024-03-14T08:05:00","guid":{"rendered":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/"},"modified":"2025-08-03T04:24:41","modified_gmt":"2025-08-03T04:24:41","slug":"how-to-use-the-lower_bound-function-in-c","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/","title":{"rendered":"C++ lower_bound Function: Complete Guide"},"content":{"rendered":"<p>In C++, the lower_bound function is used to return the position of the first element in a sorted range that is not less than the given value.<\/p>\n<p>Here is the syntax for the lower_bound function:<\/p>\n<pre class=\"post-pre\"><code>std::vector&lt;<span class=\"hljs-type\">int<\/span>&gt;::<span class=\"hljs-function\">iterator <span class=\"hljs-title\">lower_bound<\/span> <span class=\"hljs-params\">(std::vector&lt;<span class=\"hljs-type\">int<\/span>&gt;::iterator first, std::vector&lt;<span class=\"hljs-type\">int<\/span>&gt;::iterator last, <span class=\"hljs-type\">const<\/span> <span class=\"hljs-type\">int<\/span>&amp; val)<\/span><\/span>;\r\n<\/code><\/pre>\n<p>Before using the lower_bound function, make sure that the interval has been sorted in ascending order. Then, pass three parameters to the function: an iterator pointing to the beginning of the interval, an iterator pointing to the end of the interval, and the value to be searched for.<\/p>\n<p>The lower_bound function searches for the first element in the specified range that is not less than the given value val, and returns an iterator pointing to that element. If no element meeting the condition is found, it returns an iterator pointing to the end of the range.<\/p>\n<p>Here is a simple example code demonstrating how to use the lower_bound function.<\/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; vec = {<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">4<\/span>, <span class=\"hljs-number\">5<\/span>, <span class=\"hljs-number\">6<\/span>, <span class=\"hljs-number\">7<\/span>, <span class=\"hljs-number\">8<\/span>, <span class=\"hljs-number\">9<\/span>};\r\n\r\n    <span class=\"hljs-comment\">\/\/ \u67e5\u627e\u4e0d\u5c0f\u4e8e 5 \u7684\u7b2c\u4e00\u4e2a\u5143\u7d20\u7684\u4f4d\u7f6e<\/span>\r\n    std::vector&lt;<span class=\"hljs-type\">int<\/span>&gt;::iterator it = std::<span class=\"hljs-built_in\">lower_bound<\/span>(vec.<span class=\"hljs-built_in\">begin<\/span>(), vec.<span class=\"hljs-built_in\">end<\/span>(), <span class=\"hljs-number\">5<\/span>);\r\n\r\n    <span class=\"hljs-keyword\">if<\/span> (it != vec.<span class=\"hljs-built_in\">end<\/span>()) {\r\n        std::cout &lt;&lt; <span class=\"hljs-string\">\"\u7b2c\u4e00\u4e2a\u4e0d\u5c0f\u4e8e5\u7684\u5143\u7d20\u4f4d\u7f6e\u4e3a\uff1a\"<\/span> &lt;&lt; std::<span class=\"hljs-built_in\">distance<\/span>(vec.<span class=\"hljs-built_in\">begin<\/span>(), it) &lt;&lt; std::endl;\r\n    } <span class=\"hljs-keyword\">else<\/span> {\r\n        std::cout &lt;&lt; <span class=\"hljs-string\">\"\u672a\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u5143\u7d20\"<\/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>In the example above, the lower_bound function is used to find the first element in vec that is not less than 5. Since vec is already sorted in ascending order, the iterator returned points to 5.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In C++, the lower_bound function is used to return the position of the first element in a sorted range that is not less than the given value. Here is the syntax for the lower_bound function: std::vector&lt;int&gt;::iterator lower_bound (std::vector&lt;int&gt;::iterator first, std::vector&lt;int&gt;::iterator last, const int&amp; val); Before using the lower_bound function, make sure that the interval has [&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":[3198,274,3696,11304,3701],"class_list":["post-8404","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-binary-search","tag-c","tag-c-algorithms","tag-lower_bound","tag-stl"],"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++ lower_bound Function: Complete Guide - Blog - Silicon Cloud<\/title>\n<meta name=\"description\" content=\"Learn how to use the lower_bound function in C++. Understand its syntax, parameters, and when to use it with examples.\" \/>\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-to-use-the-lower_bound-function-in-c\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"C++ lower_bound Function: Complete Guide\" \/>\n<meta property=\"og:description\" content=\"Learn how to use the lower_bound function in C++. Understand its syntax, parameters, and when to use it with examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-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-14T08:05:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-08-03T04:24:41+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\/how-to-use-the-lower_bound-function-in-c\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/\"},\"author\":{\"name\":\"Jackson Davis\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350\"},\"headline\":\"C++ lower_bound Function: Complete Guide\",\"datePublished\":\"2024-03-14T08:05:00+00:00\",\"dateModified\":\"2025-08-03T04:24:41+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/\"},\"wordCount\":190,\"publisher\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#organization\"},\"keywords\":[\"binary search\",\"c#\",\"C++ algorithms\",\"lower_bound\",\"STL\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/\",\"url\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/\",\"name\":\"C++ lower_bound Function: Complete Guide - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/#website\"},\"datePublished\":\"2024-03-14T08:05:00+00:00\",\"dateModified\":\"2025-08-03T04:24:41+00:00\",\"description\":\"Learn how to use the lower_bound function in C++. Understand its syntax, parameters, and when to use it with examples.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.silicloud.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"C++ lower_bound Function: Complete Guide\"}]},{\"@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++ lower_bound Function: Complete Guide - Blog - Silicon Cloud","description":"Learn how to use the lower_bound function in C++. Understand its syntax, parameters, and when to use it with examples.","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-to-use-the-lower_bound-function-in-c\/","og_locale":"en_US","og_type":"article","og_title":"C++ lower_bound Function: Complete Guide","og_description":"Learn how to use the lower_bound function in C++. Understand its syntax, parameters, and when to use it with examples.","og_url":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/","og_site_name":"Blog - Silicon Cloud","article_publisher":"https:\/\/www.facebook.com\/SiliCloudGlobal\/","article_published_time":"2024-03-14T08:05:00+00:00","article_modified_time":"2025-08-03T04:24:41+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\/how-to-use-the-lower_bound-function-in-c\/#article","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/"},"author":{"name":"Jackson Davis","@id":"https:\/\/www.silicloud.com\/blog\/#\/schema\/person\/55a10b8b0457c35884c25677889ad350"},"headline":"C++ lower_bound Function: Complete Guide","datePublished":"2024-03-14T08:05:00+00:00","dateModified":"2025-08-03T04:24:41+00:00","mainEntityOfPage":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/"},"wordCount":190,"publisher":{"@id":"https:\/\/www.silicloud.com\/blog\/#organization"},"keywords":["binary search","c#","C++ algorithms","lower_bound","STL"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/","url":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/","name":"C++ lower_bound Function: Complete Guide - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/blog\/#website"},"datePublished":"2024-03-14T08:05:00+00:00","dateModified":"2025-08-03T04:24:41+00:00","description":"Learn how to use the lower_bound function in C++. Understand its syntax, parameters, and when to use it with examples.","breadcrumb":{"@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/blog\/how-to-use-the-lower_bound-function-in-c\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.silicloud.com\/blog\/"},{"@type":"ListItem","position":2,"name":"C++ lower_bound Function: Complete Guide"}]},{"@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\/8404","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=8404"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8404\/revisions"}],"predecessor-version":[{"id":153210,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/posts\/8404\/revisions\/153210"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/media?parent=8404"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/categories?post=8404"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/blog\/wp-json\/wp\/v2\/tags?post=8404"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}