在已序區間搜尋指定的元素,【搜尋區間必須是有序的】
函式原型為:
template
bool binary_search(forwardit first, forwardit last, const t& value)
//第二種形式
template
bool binary_search(forwardit first, forwardit last, const t& value, compare comp)
說明:
1. 檢查已排序的範圍[first, last)內是否包含乙個元素等於value。
2. 第一種形式:使用運算子operator《比較元素
3. 第二種形式: 使用二元比較函式: comp
4. 返回值:找到返回true,否則false
用於檢查源區間中若干值是否存在。
函式原型:
//版本一
template
bool includes(inputit1 first1, inputit1 last1,
inputit2 first2, inputit2 last2)
return
true;
}//版本二
template
bool includes(inputit1 first1, inputit1 last1,
inputit2 first2, inputit2 last2, compare comp)
return
true;
}
說明:
1. 第一種形式:預設比較operator<
2. 第二種形式: 二元比較函式:comp
3. 返回值: true,false
1.lower_bound()
函式原型:
//版本一
templateforwardit, class
t>
forwardit
lower_bound(forwardit
first, forwardit
last, const
t& value)
else
count = step;
}return first;
}//版本二
templateforwardit, class
t, class
compare>
forwardit
lower_bound(forwardit
first, forwardit
last, const
t& value, compare
comp)
else
count = step;
}return first;
}
說明:
1. 第一種形式:預設比較operator<
2. 第二種形式: 二元比較函式:comp
3. 返回值:如果存在大於等於value的第乙個值,返回他的位置的迭代器,否則返回end()迭代器
2.upper_bound()
函式原型:
//版本一
templateforwardit, class
t>
forwardit
upper_bound(forwardit
first, forwardit
last,
const
t& value)
else
count = step;
}return first;
}//版本二
templateforwardit, class
t, class
compare>
forwardit
upper_bound(forwardit
first, forwardit
last,
const
t& value, compare
comp)
else
count = step;
}return first;
}
說明:
1. 第一種形式:預設比較operator<
2. 第二種形式: 二元比較函式:comp
3. 返回值:如果存在大於value的第乙個值,返回他的位置的迭代器,否則返回end()迭代器
3.equal_range()
返回乙個pair型別,第乙個成員是指向不小於value的第乙個元素的迭代器,第二個成員是指向大於value的第乙個元素的迭代器。
函式原型:
//版本一
template
std::pairequal_range(forwardit first, forwardit last,
const t& value)
//版本二
template
std::pairequal_range(forwardit first, forwardit last,
const t& value, compare comp);
例子:
------------------省略--------------
vector
vec1 = ;
pair::iterator, vector
::iterator> eq;
eq = equal_range(vec1.begin(), vec1.end(), 4);
------------------省略--------------
結果為:
vec1: 1 2 3 4 5 6 6 7
lower: 4 upper: 5
四 c 中的演算法 排序及相關操作 堆操作
堆 是一種組織序列元素的方式。堆的內部資料結構是二叉樹。兩大性質 1.堆的第乙個元素通常是最大的元素 2.能夠在對數時間內增加或移除乙個元素 堆的操作演算法 push heap pop heap sort heap make heap 等等 函式模型 template class randomit ...
C 中的容器及相關操作
關聯容器將值與鍵關聯在一起,並使用鍵來查詢值。stl提供了4種關聯容器 set multiset map multimap。set中,可反轉,可排序,鍵與值型別相同,鍵是唯一的,意味著集合中不會有多個相同的鍵。multiset中,可能有多個值的鍵相同。map中,鍵與值型別不同,鍵是唯一的,每個鍵只對...
C 中四種排序演算法
氣泡排序 using system namespace bubblesorter public class mainclass bubblesorter sh new bubblesorter sh.sort iarrary for int m 0 m iarrary.length m consol...