c++

c++中怎么使用set删除特定位置元素

小亿
229
2024-03-13 16:40:49
栏目: 编程语言

在C++中,set是一种有序且不重复的集合容器,不支持直接通过下标访问或删除元素。如果想删除特定位置的元素,可以先使用迭代器定位到该位置,然后再调用set的erase()方法删除该元素。

以下是一个示例代码:

#include <iostream>
#include <set>

int main() {
    std::set<int> mySet = {1, 2, 3, 4, 5};

    int position = 2; // 要删除第3个位置的元素

    if(position < mySet.size()) {
        auto it = mySet.begin();
        std::advance(it, position);
        mySet.erase(it);

        for(auto num : mySet) {
            std::cout << num << " ";
        }
        std::cout << std::endl;
    } else {
        std::cout << "Position out of range." << std::endl;
    }

    return 0;
}

在这个例子中,我们首先定义了一个set,并初始化了一些元素。然后我们指定要删除的位置为第3个位置(位置从0开始计数)。通过advance()函数将迭代器it移动到指定位置,然后调用erase()方法删除该元素。最后,遍历整个set,输出删除元素后的结果。

0
看了该问题的人还看了