C STL中有兩種find

2021-08-18 12:15:30 字數 575 閱讀 3686

1. 開頭引標頭檔案:中的函式

其呼叫形式為

find(start,end,value)

start搜尋的起點,end搜尋的終點,要尋找的value值; 如果沒有找到,則返回end。函式的返回值為迭代器或指標,就是位置資訊。

容器的表示方法

find(a.begin(),a.end(),value)

所有的返回,均是迭代器(容器)或指標(陣列),而非是直觀感覺上的索引下標。如果在查詢範圍內不存在,返回a.end(),這裡需要注意的是,a.end()不在查詢範圍內。

2、各個容器自己實現的成員函式

vector沒有實現find函式,除此之外,常見容器都實現了自己的find函式。

string是這一種順序儲存結構,其find函式返回的是下標索引。set,map,multiset,multimap都不是順序索引的資料結構,所以返回的是迭代器。

3、如果元素不在

對於返回迭代器的查詢,通過判斷find(a.begin(),a.end(),value)==a.end(),來判斷元素是否存在

對於string,通過a.find(val)==string::npos判斷

C STL的兩種find()函式的使用

使用方法 find begin,end,value 解釋 第乙個引數是容器或者陣列的起始位址 容器.begin 或者陣列名 也可以是任意位址,不非法即可 第二個引數是結束查詢的位址 容器.end 或者陣列名 長度 value是想要查詢的字元或者字串。查詢成功將返回迭代器 容器 或者指標 陣列 否則返...

兩種if判斷

上海面試三 下面是c語言中兩種if語句判斷方式。請問哪種寫法更好?為什麼?int a if a1 第一種判斷方式 if 1a 第二判斷方式 答 這是個主觀題,不過多數人認為第二種好。從執行效率上講,第二種效率更高。另外,在編寫 時如果不小心將 寫成 即變成 1 a 這時編譯器將會給出錯誤提示。而如果...

mysql的兩種引擎 mysql的兩種儲存引擎

背景 最近在使用spring data jpa操作mysql,在使用jpa的自動建表功能之後,處理多對多關係 manytomany的時候,spring data jpa會給中間表的兩個欄位都加上外來鍵引用。當前使用的版本預設的資料庫儲存引擎為myisam。這種儲存引擎是為資料庫查詢效能而生的,不支援...