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

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

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

一、binary_search

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

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

可以看到,下面的numList2沒有排好序,導致三個函數(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
    //返回值為物理地址,因此要獲得對應的邏輯地址,需要減去數(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); //若找到,則返回物理地址,需要減去首地址以獲得下標
	if (pos == (numList2 + 5)) {
		cout << "Couldn't find it";
	}
	else
		cout << pos - numList2; //返回下標

字符串的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');
	//返回的是下標的值而不是上面的指針或是迭代器

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

您可能感興趣的文章:

相關文章

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

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

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

    C語言中使用qsort函數(shù)對自定義結構體數(shù)組進行排序

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

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

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

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

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

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

    嗅覺劑優(yōu)化是一種新穎的優(yōu)化算法,旨在模仿氣味分子源尾隨的藥劑的智能行為。本文將利用Matlab實現(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表達式,嚴格的說它是一種函數(shù)對象
    2022-08-08
  • 詳解C語言之文件操作(上)

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

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

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

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

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

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

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

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

最新評論

肃宁县| 乌海市| 玛曲县| 巴楚县| 娄底市| 丹江口市| 浮山县| 石家庄市| 荆门市| 宁明县| 皮山县| 聂拉木县| 台湾省| 中阳县| 凤山市| 恭城| 金平| 中宁县| 和硕县| 贺州市| 随州市| 新安县| 穆棱市| 包头市| 临湘市| 泰州市| 锡林郭勒盟| 长白| 天全县| 长治市| 金昌市| 台前县| 乡宁县| 桃源县| 会宁县| 郯城县| 泽州县| 西峡县| 清原| 安乡县| 武宣县|