中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

免費網(wǎng)站空間可訪問第三方推廣平臺

免費網(wǎng)站空間可訪問,第三方推廣平臺,電腦做網(wǎng)站軟件,百度做網(wǎng)站聯(lián)系電話lower_bound lower_bound 是 C 標準庫算法&#xff0c;通常用于有序序列中查找第一個不小于給定值的元素。它屬于 <algorithm> 頭文件&#xff0c;并且是基于二分查找實現(xiàn)的&#xff0c;因此要求輸入序列必須是有序的。 基本語法 #include <algorithm> // 引入算…

lower_bound

lower_bound 是 C++ 標準庫算法,通常用于有序序列中查找第一個不小于給定值的元素。它屬于 <algorithm> 頭文件,并且是基于二分查找實現(xiàn)的,因此要求輸入序列必須是有序的。

基本語法

#include <algorithm>  // 引入算法庫Iterator lower_bound(Iterator first, Iterator last, const T& value);
  • firstlast 是迭代器,分別表示容器的起始位置和結束位置(不包括 last)。

  • value 是要在容器中查找的目標值。

  • 返回值是迭代器,指向第一個不小于 value 的元素。如果沒有找到符合條件的元素,返回 last。

使用條件

  • 容器中的元素必須是有序的,通常是按非遞減順序(從小到大)排列的。

  • 如果容器無序,需要先對容器進行排序,才能使用 lower_bound。

返回值解釋

  • 如果找到一個元素,其值不小于 value,返回指向該元素的迭代器。

  • 如果所有元素都小于 value,返回 last,即容器的末尾。

示例代碼

示例 1:簡單查找
#include <iostream>
#include <vector>
#include <algorithm>  // 需要引入algorithmint main() {std::vector<int> v = {1, 2, 4, 4, 5, 8, 10};int value = 4;auto it = std::lower_bound(v.begin(), v.end(), value);if (it != v.end()) {std::cout << "第一個不小于 " << value << " 的元素是: " << *it << std::endl;} else {std::cout << "沒有找到不小于 " << value << " 的元素。" << std::endl;}return 0;
}

輸出

第一個不小于 4 的元素是: 4

在這個例子中,lower_bound 返回了指向值為 4 的第一個元素的迭代器。

示例 2:未找到的情況
#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> v = {1, 2, 4, 4, 5, 8, 10};int value = 12;auto it = std::lower_bound(v.begin(), v.end(), value);if (it != v.end()) {std::cout << "第一個不小于 " << value << " 的元素是: " << *it << std::endl;} else {std::cout << "沒有找到不小于 " << value << " 的元素。" << std::endl;}return 0;
}

輸出

沒有找到不小于 12 的元素。

因為所有元素都小于 12,所以返回 v.end()。

注意事項

  1. 容器必須有序:如果容器未排序,lower_bound 的結果是未定義的。

  2. 時間復雜度:由于使用二分查找,時間復雜度為 O(logn),其中 n 是容器中元素的數(shù)量。

  3. 自定義比較函數(shù):如果需要使用自定義的順序規(guī)則,可以提供一個比較函數(shù)作為參數(shù),例如

    auto it = std::lower_bound(v.begin(), v.end(), value, custom_compare);

    其中 custom_compare 是一個函數(shù)對象,接收兩個元素作為參數(shù),返回一個布爾值,用于定義排序規(guī)則。

lower_bound 是一個非常實用的函數(shù),特別適合在有序數(shù)據(jù)中進行高效的查找操作。

upper_bound

upper_bound 是 C++ 標準庫中的一個算法函數(shù),與 lower_bound 類似,它也用于有序序列中查找特定值的位置,但功能略有不同。upper_bound 用于查找第一個大于給定值的元素的位置。它同樣基于二分查找實現(xiàn),因此要求輸入序列必須是有序的。

基本語法

#include <algorithm>  // 引入算法庫Iterator upper_bound(Iterator first, Iterator last, const T& value);
  • firstlast 是迭代器,分別表示容器的起始位置和結束位置(不包括 last)。

  • value 是要在容器中查找的目標值。

  • 返回值是迭代器,指向第一個大于 value 的元素。如果沒有找到符合條件的元素,返回 last。

使用條件

  • 容器中的元素必須是有序的,通常是按非遞減順序(從小到大)排列的。

  • 如果容器無序,需要先對容器進行排序,才能使用 upper_bound。

返回值解釋

  • 如果找到一個元素,其值大于 value,返回指向該元素的迭代器。

  • 如果所有元素都小于或等于 value,返回 last,即容器的末尾。

示例代碼

示例 1:簡單查找
#include <iostream>
#include <vector>
#include <algorithm>  // 需要引入algorithmint main() {std::vector<int> v = {1, 2, 4, 4, 5, 8, 10};int value = 4;auto it = std::upper_bound(v.begin(), v.end(), value);if (it != v.end()) {std::cout << "第一個大于 " << value << " 的元素是: " << *it << std::endl;} else {std::cout << "沒有找到大于 " << value << " 的元素。" << std::endl;}return 0;
}

輸出

第一個大于 4 的元素是: 5

在這個例子中,upper_bound 返回了指向值為 5 的元素的迭代器。

示例 2:未找到的情況
#include <iostream>
#include <vector>
#include <algorithm>int main() {std::vector<int> v = {1, 2, 4, 4, 5, 8, 10};int value = 12;auto it = std::upper_bound(v.begin(), v.end(), value);if (it != v.end()) {std::cout << "第一個大于 " << value << " 的元素是: " << *it << std::endl;} else {std::cout << "沒有找到大于 " << value << " 的元素。" << std::endl;}return 0;
}

輸出

沒有找到大于 12 的元素。

因為所有元素都小于或等于 12,所以返回 v.end()。

注意事項

  1. 容器必須有序:如果容器未排序,upper_bound 的結果是未定義的。

  2. 時間復雜度:由于使用二分查找,時間復雜度為 O(logn),其中 n 是容器中元素的數(shù)量。

  3. 自定義比較函數(shù):如果需要使用自定義的順序規(guī)則,可以提供一個比較函數(shù)作為參數(shù),例如

    auto it = std::upper_bound(v.begin(), v.end(), value, custom_compare);

    其中 custom_compare 是一個函數(shù)對象,接收兩個元素作為參數(shù),返回一個布爾值,用于定義排序規(guī)則。

  4. lower_bound 的區(qū)別

    • lower_bound 返回第一個不小于給定值的元素。

    • upper_bound 返回第一個大于給定值的元素。

    • 如果容器中存在多個相同的值,lower_bound 會返回第一個等于該值的元素,而 upper_bound 會返回第一個大于該值的元素。

應用場景

upper_bound 常用于以下場景:

  • 在有序序列中查找第一個大于某個值的元素。

  • 用于實現(xiàn)區(qū)間查找,例如結合 lower_boundupper_bound 來查找某個值的范圍。

http://www.risenshineclean.com/news/1893.html

相關文章:

  • 政府網(wǎng)站建設項目背景seo網(wǎng)站優(yōu)化推薦
  • 做網(wǎng)站工作室找客戶難廣州谷歌優(yōu)化
  • 裝修公司做網(wǎng)站有用嗎友情鏈接的網(wǎng)站圖片
  • 自助建站系統(tǒng)微信管理系統(tǒng)登錄入口
  • 做技術開發(fā)的網(wǎng)站如何制作一個網(wǎng)站
  • 南陽網(wǎng)站排名優(yōu)化濟南做網(wǎng)站比較好的公司
  • 杭州網(wǎng)站建設網(wǎng)百度瀏覽器網(wǎng)址鏈接
  • 網(wǎng)站推廣的措施和手段有哪些新塘網(wǎng)站seo優(yōu)化
  • 動易官方網(wǎng)站搜索引擎優(yōu)化實訓
  • 可以做設計的網(wǎng)站社交媒體營銷案例
  • wordpress產品的分類標簽屬性區(qū)別信息流優(yōu)化師培訓機構
  • 網(wǎng)站設計審美角度怎么去推廣一個app
  • 甘肅省住房和城鄉(xiāng)建設廳注冊中心網(wǎng)站首頁交換鏈接適用于哪些網(wǎng)站
  • 湖南網(wǎng)站建設小公司排名廣州網(wǎng)站優(yōu)化外包
  • 石家莊企業(yè)網(wǎng)站制作上海網(wǎng)絡推廣優(yōu)化公司
  • 成都網(wǎng)站建設小程序360關鍵詞指數(shù)查詢
  • 手機上做網(wǎng)站php網(wǎng)站制作企業(yè)有哪些
  • 1000M雙線網(wǎng)站空間中國搜索引擎大全
  • 南京教育網(wǎng)站開發(fā)線上電商怎么做
  • wordpress 建站 電子書網(wǎng)絡營銷的核心是什么
  • 網(wǎng)站負責人姓名找合作項目app平臺
  • 競價網(wǎng)站托管濟南seo優(yōu)化外包服務公司
  • 大紅門做網(wǎng)站怎樣交換友情鏈接
  • 做網(wǎng)站用什么配資電腦千鋒教育介紹
  • 做網(wǎng)站 大文件百度怎么創(chuàng)建自己的網(wǎng)站
  • 煙臺高新區(qū)建設局網(wǎng)站網(wǎng)絡廣告策劃
  • 無障礙網(wǎng)站建設方案近期重大新聞事件
  • 上海公司做網(wǎng)站的友情鏈接是什么
  • 網(wǎng)站定制微安電力案例臨沂色度廣告有限公司
  • 中國住建部網(wǎng)站查詢網(wǎng)寧波企業(yè)seo服務