📜  C ++ STL中的多集delete()(1)

📅  最后修改于: 2023-12-03 15:29:42.143000             🧑  作者: Mango

C++ STL中的多集 delete()

多集是 C++ STL 中的一个容器,它类似于集合,但允许存储相同的元素。多集提供了快速的插入、查找、删除元素的操作。

在使用多集时,有时需要删除特定的元素或者所有相同的元素。可以使用 delete() 函数来完成这些操作。

delete() 函数的语法
void delete (const T& val);
void delete (const iterator& position);
void delete (const iterator& first, const iterator& last);
delete() 函数的参数
  • val:需要删除的元素的值。
  • position:需要删除的元素的迭代器。
  • firstlast:需要删除元素的范围,包括 first 但不包括 last。
delete() 函数的返回值

delete() 函数没有返回值。

delete() 函数的示例
1. 删除指定元素
#include <iostream>
#include <set>

int main() {
    std::multiset<int> myset = {1, 2, 2, 3, 4, 2, 5};
    std::cout << "Before delete: ";
    for (const auto& x : myset) {
        std::cout << x << " ";
    }
    std::cout << std::endl;

    myset.delete(2);

    std::cout << "After delete: ";
    for (const auto& x : myset) {
        std::cout << x << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出:

Before delete: 1 2 2 3 4 2 5 
After delete: 1 3 4 5 
2. 删除所有元素
#include <iostream>
#include <set>

int main() {
    std::multiset<int> myset = {1, 2, 2, 3, 4, 2, 5};
    std::cout << "Before delete: ";
    for (const auto& x : myset) {
        std::cout << x << " ";
    }
    std::cout << std::endl;

    myset.delete(myset.begin(), myset.end());

    std::cout << "After delete: ";
    for (const auto& x : myset) {
        std::cout << x << " ";
    }
    std::cout << std::endl;

    return 0;
}

输出:

Before delete: 1 2 2 3 4 2 5 
After delete: