在 C++ 中,std::set
是一個關聯容器,它包含一組唯一的對象
使用 erase()
成員函數:
std::set
提供了一個名為 erase()
的成員函數,用于刪除指定元素。要刪除一個元素,只需提供該元素的值即可。例如:
#include <iostream>
#include <set>
int main() {
std::set<int> my_set = {1, 2, 3, 4, 5};
// 刪除元素 3
my_set.erase(3);
// 輸出 set 的內容
for (int element : my_set) {
std::cout << element << " ";
}
return 0;
}
輸出:
1 2 4 5
使用 remove()
算法:
除了使用 erase()
成員函數外,還可以使用 C++ 標準庫中的 remove()
算法來刪除指定元素。remove()
算法會將所有等于指定值的元素移動到容器的末尾,并返回一個指向新邏輯末尾的迭代器。然后,可以使用 erase()
成員函數刪除這些元素。例如:
#include <iostream>
#include <set>
#include <algorithm>
int main() {
std::set<int> my_set = {1, 2, 3, 4, 5};
// 刪除元素 3
auto new_end = std::remove(my_set.begin(), my_set.end(), 3);
my_set.erase(new_end, my_set.end());
// 輸出 set 的內容
for (int element : my_set) {
std::cout << element << " ";
}
return 0;
}
輸出:
1 2 4 5
請注意,remove()
算法并不會真正刪除元素,而是將它們移動到容器的末尾。要實際刪除這些元素,需要使用 erase()
成員函數。