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