set容器都會自行根據鍵的大小對存儲的鍵值對進行排序, 只不過 set 容器中各鍵值對的鍵 key 和值 value 是相等的,根據 key 排序,也就等價為根據 value 排序。
另外,使用 set 容器存儲的各個元素的值必須各不相同。更重要的是,從語法上講 set 容器并沒有強制對存儲元素的類型做 const 修飾,即 set 容器中存儲的元素的值是可以修改的。但是,C++ 標準為了防止用戶修改容器中元素的值,對所有可能會實現此操作的行為做了限制,使得在正常情況下,用戶是無法做到修改 set 容器中元素的值的。
對于初學者來說,切勿嘗試直接修改 set 容器中已存儲元素的值,這很有可能破壞 set 容器中元素的有序性,最正確的修改 set 容器中元素值的做法是:先刪除該元素,然后再添加一個修改后的元素。
值得一提的是,set 容器定義于<set>頭文件,并位于 std 命名空間中。因此如果想在程序中使用 set 容器,該程序代碼應先包含如下語句:
#include <set>using namespace std;
注意,第二行代碼不是必需的,如果不用,則后續程序中在使用 set 容器時,需手動注明 std 命名空間(強烈建議初學者使用)。
set 容器的類模板定義如下:
template < class T,