std::set、std::map 為**關聯式容器**,底層紅黑樹依鍵值有序存儲。insert(value) **不接受位置參數**,新元素會依鍵值自動放入正確位置,維持有序性。回傳 pair<iterator,bool> 指向實際插入位置。
std::set s = {5, 1, 3};
s.insert(0); // 自動排到最前
s.insert(4); // 自動排在 3 和 5 之間
// s 內部順序永遠為 0,1,3,4,5
| 容器 | insert 簽名 | 位置參數 |
|---|---|---|
| vector/list/deque | insert(pos, val) | iterator pos (指定插入點) |
| set/map | insert(val) | 無 (依鍵值自動定位) |
| set/map (C++11) | insert(hint, val) | iterator hint (僅作優化提示,不保證插入點) |
若需「插入到特定索引」,請用 vector 或 list;若需「自動去重+有序」,用 set;若需「鍵值對+有序」,用 map。