【C++】迭代器與二分查詢
bool search_value_loop(std::vector <int> &ivec,const int search_value,std::vector <int> ::difference_type & position){
auto start=ivec.cbegin();
auto end=ivec.cend();
auto mid=start+(end-start)/2;
// std::cout<<*mid<<std::endl;
while(mid!=end && *mid!=search_value){
if(*mid<search_value){
start=mid+1;
}else{
end=mid-1;
}
mid=start +(end-start)/2;
}
if(*mid==search_value){
position=mid-ivec.cbegin()+1;
return true;
}
return false;
}
int main()
{
bool rest;
vector <int> ::difference_type position;
vector <int> ivec={1,2,3,4,18,23,85,122};
rest=search_value_loop(ivec,122,position);
if(!rest){
std::cout<<"no match values"<<std::endl;
}else{
std::cout<<position<<std::endl;
}
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30221425/viewspace-2142580/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 二分查詢(c++)C++
- 查詢——二分查詢
- 二分查詢的兩種實現形式遞迴和迭代遞迴
- 二分查詢(一)——純粹的二分查詢
- 二分查詢
- 二分查詢常見套路與分析
- 查詢演算法__二分查詢演算法
- 二分查詢法
- PHP二分查詢PHP
- leetcode——二分查詢LeetCode
- leetcode -- 二分查詢LeetCode
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- 查詢演算法之二分查詢演算法
- 二分查詢 | 二分查詢的一種推薦寫法
- C++之迭代器C++
- C++,Java,Python,Javascript實現二分查詢演算法C++PythonJavaScript演算法
- labuladong_二分查詢
- 704.二分查詢
- 詳解二分查詢
- Leetcode 704 二分查詢LeetCode
- 每日leetcode——二分查詢LeetCode
- python二分查詢模板Python
- 二分查詢【折半查詢】演算法 PHP 版演算法PHP
- C++ STL之迭代器C++
- C++ STL迭代器(iterator)C++
- 資料結構與演算法-二分查詢資料結構演算法
- 二分查詢 - 手寫模板與自帶函式函式
- 【資料結構與演算法】—— 二分查詢資料結構演算法
- PHP 實現二分查詢PHP
- 圖解--二分查詢樹圖解
- 二分查詢成長錄
- 二分查詢的定義
- 二分查詢-不套用模板
- 演算法->二分查詢演算法
- 【演算法】二分查詢演算法
- 力扣之二分查詢力扣
- 二分搜尋(折半查詢)
- 牛客網 查詢(二分查詢、北郵機試)
- Iterator與Iterable(迭代器與可迭代)