最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c++自帶的查找函數(shù)詳解

 更新時間:2023年09月08日 10:41:18   投稿:mrr  
這篇文章主要介紹了c++自帶的查找函數(shù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

一、binary_search

使用binary_search查找必須是排好序的才行。使用下面三個函數(shù)都需要先排一遍序

//這三個函數(shù)都有三個參數(shù):分別為數(shù)組的起始位置、數(shù)組的終止位置(取不到)以及要查找的目標(biāo)值,
lower_bound():返回大于或等于目標(biāo)值的第一個位置
upper_bound():返回大于目標(biāo)值的第一個位置
//返回值為物理地址,因此要獲得對應(yīng)的邏輯地址,需要減去數(shù)組的起始位置。
binary_search():若目標(biāo)值存在則返回true,否則返回false

可以看到,下面的numList2沒有排好序,導(dǎo)致三個函數(shù)的返回值都是錯誤的。 

#include<iostream>
#include<algorithm>
using namespace std;
int main() {
	/*排好序的*/
	int numList1[5] = { 1,2,3,4,5 };
	int n1 = 2;
	/*亂序的*/
	int numList2[5] = { 1,3,2,4,5 };
	int n2 = 2;
	cout << binary_search(numList1, numList1 + 5, n1) << endl;  //true
	cout << binary_search(numList2, numList2 + 5, n1) << endl;  //false
    //返回值為物理地址,因此要獲得對應(yīng)的邏輯地址,需要減去數(shù)組的起始位置。
	cout << lower_bound(numList1, numList1 + 5, n1)- numList1 << endl;  //1
	cout << upper_bound(numList1, numList1 + 5, n1)- numList1 << endl;  //2
	cout << lower_bound(numList2, numList2 + 5, n1)- numList2<< endl;  //1
	cout << upper_bound(numList2, numList2 + 5, n1) - numList2 << endl;  //3
}

二、find

即便不排序也可以正常用。

數(shù)組的find

/*亂序的*/
	int numList2[5] = { 1,3,2,4,5 };
	int n2 = 2;
	int* pos = find(numList2, numList2 + 5, 2); //若找到,則返回物理地址,需要減去首地址以獲得下標(biāo)
	if (pos == (numList2 + 5)) {
		cout << "Couldn't find it";
	}
	else
		cout << pos - numList2; //返回下標(biāo)

字符串的find 

    string str = "abcd";
	if (find(str.begin(), str.end(), 'a') != str.end())
	//使用迭代器
		cout << "Find it!";
	else
		cout << "Couldn't find it!";
// 或者
    string str = "abcd";
	cout << str.find('a');
	//返回的是下標(biāo)的值而不是上面的指針或是迭代器

到此這篇關(guān)于c++自帶的查找函數(shù)的文章就介紹到這了,更多相關(guān)c++查找函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:

相關(guān)文章

  • C++?如何使用棧求解中綴、后綴表達(dá)式的值

    C++?如何使用棧求解中綴、后綴表達(dá)式的值

    這篇文章主要介紹了C++?使用棧求解中綴、后綴表達(dá)式的值,本文講解了中綴、后綴表達(dá)式的求值過程以及如何將一個中綴表達(dá)式轉(zhuǎn)換成后綴表達(dá)式,需要的朋友可以參考下
    2022-10-10
  • C語言中使用qsort函數(shù)對自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序

    C語言中使用qsort函數(shù)對自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序

    這篇文章主要介紹了C語言中使用qsort函數(shù)對自定義結(jié)構(gòu)體數(shù)組進(jìn)行排序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C語言中函數(shù)的聲明、定義及使用的入門教程

    C語言中函數(shù)的聲明、定義及使用的入門教程

    這篇文章主要介紹了C語言中函數(shù)的聲明、定義及使用的入門教程,重點(diǎn)講述了main函數(shù)的相關(guān)知識,需要的朋友可以參考下
    2015-12-12
  • C語言實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn)

    C語言實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單飛機(jī)大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-02-02
  • 基于Matlab實(shí)現(xiàn)嗅覺優(yōu)化算法的示例代碼

    基于Matlab實(shí)現(xiàn)嗅覺優(yōu)化算法的示例代碼

    嗅覺劑優(yōu)化是一種新穎的優(yōu)化算法,旨在模仿氣味分子源尾隨的藥劑的智能行為。本文將利用Matlab實(shí)現(xiàn)這一智能優(yōu)化算法,需要的可以參考一下
    2022-05-05
  • C++可調(diào)用對象callable object深入分析

    C++可調(diào)用對象callable object深入分析

    所謂的callable object,表示可以被某種方式調(diào)用其某些函數(shù)的對象。它可以是:一個函數(shù)、一個指向成員函數(shù)的指針、一個函數(shù)對象,該對象擁有operator()、一個lambda表達(dá)式,嚴(yán)格的說它是一種函數(shù)對象
    2022-08-08
  • 詳解C語言之文件操作(上)

    詳解C語言之文件操作(上)

    這篇文章主要介紹了關(guān)于C語言文件操作方法的相關(guān)資料,小編覺得這篇文章寫的還不錯,需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-11-11
  • C語言運(yùn)算符及其優(yōu)先級匯總表口訣

    C語言運(yùn)算符及其優(yōu)先級匯總表口訣

    由于C語言的運(yùn)算符優(yōu)先級與C++的不完全一樣(主要是增加了幾個運(yùn)算符),所以這個口訣不能完全實(shí)用于C++.但是應(yīng)該能夠兼容,大家可以比較一下他們的區(qū)別應(yīng)該就能夠很快掌握C++的優(yōu)先級的
    2013-07-07
  • C++中LibCurl庫的使用教程分享

    C++中LibCurl庫的使用教程分享

    LibCurl是一個開源的免費(fèi)的多協(xié)議數(shù)據(jù)傳輸開源庫,該框架具備跨平臺性,開源免費(fèi),這篇文章主要為大家介紹了如何在C++中使用LibCurl庫,需要的可以參考下
    2023-08-08
  • C++內(nèi)存序的操作方法

    C++內(nèi)存序的操作方法

    在C++中,內(nèi)存序(Memory Order)是一個非常重要的概念,特別是在多線程編程中,本文通過實(shí)例代碼介紹C++內(nèi)存序的相關(guān)知識,感興趣的朋友一起看看吧
    2025-11-11

最新評論

哈密市| 湘潭市| 凉城县| 淮阳县| 平乐县| 沅陵县| 崇义县| 泰来县| 安国市| 周至县| 韶关市| 讷河市| 芒康县| 沅江市| 华安县| 麦盖提县| 淮安市| 定襄县| 韩城市| 成武县| 长治县| 潞西市| 贵溪市| 白水县| 宜章县| 乌鲁木齐市| 曲靖市| 康保县| 封开县| 手机| 改则县| 巴林左旗| 会理县| 连南| 嘉定区| 沅江市| 禄丰县| 包头市| 无棣县| 公安县| 象州县|