c++ stl 已排序區間算法 查找第一個和最後一個可能位置equal_range使用方法

在這裏插入圖片描述

使用例子:

template<typename T>
inline void INSERT_ELEMENTS(T& coll, int first, int last)
{
	for (int i = first; i <= last; ++i)
	{
		coll.insert(coll.end(), i);
	}
}
template<typename T>
inline void PRINT_ELEMENTS(const T & coll, const string& optcstr = "")
{
	cout << optcstr;
	for (auto elem : coll)
	{
		cout << elem << ' ';
	}
	cout << endl;
}
int main()
{
	list<int>a;
	INSERT_ELEMENTS(a, 1, 9);
	INSERT_ELEMENTS(a, 1, 9);
	a.sort();
	PRINT_ELEMENTS(a);
	pair<list<int>::const_iterator, list<int>::const_iterator>range;
	range = equal_range(a.cbegin(), a.cend(), 5);
	cout << distance(a.cbegin(), range.first) + 1 << ": " << distance(a.cbegin(), range.second) + 1 << endl;

}


在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章