在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,输出删除元素后的结果。