template < class Key, class Pred = less<Key>, class A = allocator<Key> > class set {...}
pair<iterator, bool> insert(const T & val);
如果 set 的 insert 成員函數的返回值是 pair 模板類物件 x,如果 x.second 為 true,則說明插入成功,此時 x.first 就是指向被插入元素的疊代器;如果 x.second 為 false,則說明要插入的元素已在容器中,此時 x.first 就是指向原有那個元素的疊代器。pair<iterator, iterator> equal_range(const T & val);
返回值物件中的 first 就是 lower_bound 的值,second 就是 upper_bound 的值。#include <iostream> #include <set> //使用set須包含此檔案 using namespace std; int main() { typedef set<int>::iterator IT; int a[5] = { 3,4,6,1,2 }; set<int> st(a,a+5); // st裡是 1 2 3 4 6 pair< IT,bool> result; result = st.insert(5); // st變成 1 2 3 4 5 6 if(result.second) //插入成功則輸出被插入元素 cout << * result.first << " inserted" << endl; //輸出: 5 inserted if(st.insert(5).second) cout << * result.first << endl; else cout << * result.first << " already exists" << endl; //輸出 5 already exists pair<IT,IT> bounds = st.equal_range(4); cout << * bounds.first << "," << * bounds.second ; //輸出:4,5 return 0; }程式的輸出結果是: