在 C++ 中,std::set
是一個關聯容器,它包含一組唯一的對象。當你從 std::set
中刪除一個元素時,它會自動調整其內部結構以保持元素的唯一性和排序。
要刪除 std::set
中的元素,你可以使用 erase()
成員函數。這是一個簡單的示例:
#include <iostream>
#include <set>
int main() {
// 創建一個包含一些整數的集合
std::set<int> my_set = {1, 2, 3, 4, 5};
// 輸出集合中的元素
std::cout << "Before deletion: ";
for (int num : my_set) {
std::cout << num << " ";
}
std::cout << std::endl;
// 刪除集合中的元素
int element_to_delete = 3;
my_set.erase(element_to_delete);
// 輸出刪除元素后的集合
std::cout << "After deletion: ";
for (int num : my_set) {
std::cout << num << " ";
}
std::cout << std::endl;
return 0;
}
在這個示例中,我們首先創建了一個包含一些整數的 std::set
。然后,我們使用 erase()
函數刪除了值為 3 的元素。最后,我們輸出刪除元素后的集合。
需要注意的是,erase()
函數可以接受一個迭代器作為參數,用于指定要刪除的元素的位置。你也可以使用 erase()
函數的另一個重載版本,它接受兩個迭代器作為參數,用于指定要刪除的元素范圍。例如:
// 刪除集合中從 it1 到 it2(不包括 it2)的元素
auto it1 = my_set.begin();
auto it2 = my_set.find(4); // 假設我們要刪除值為 4 的元素
my_set.erase(it1, it2);