阅读量:141
在C++中,set是一种有序且不重复的集合容器,不支持直接通过下标访问或删除元素。如果想删除特定位置的元素,可以先使用迭代器定位到该位置,然后再调用set的erase()方法删除该元素。
以下是一个示例代码:
#include
#include
int main() {
std::set<int> mySet = {1, 2, 3, 4, 5};
int position = 2; // 要删除第3个位置的元素
if(position < mySet class="hljs-built_in">size()) {
auto it = mySet.begin();
std::advance(it, position);
mySet.erase(it);
for(auto num : mySet) {
std::cout << num class="hljs-string">" ";
}
std::cout << std class="hljs-keyword">else {
std::cout << "Position out of range." << std class="hljs-keyword">return 0;
}
在这个例子中,我们首先定义了一个set,并初始化了一些元素。然后我们指定要删除的位置为第3个位置(位置从0开始计数)。通过advance()函数将迭代器it移动到指定位置,然后调用erase()方法删除该元素。最后,遍历整个set,输出删除元素后的结果。