使用例子:
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;
}