set删除某位置元素

set删除确定值的元素可以用erase,那么如果要删除第i个元素怎么办呢?
迭代器实现,代码如下:


    set<int>s;         
    for(int i=1;i<=5;i++)
    s.insert(i);     //把1~5的元素插入
    set<int>::iterator it;   
    it=s.begin();    //迭代器指向开头第一个
    it++;
    it++;           //迭代器指向了第三个
    int ss=*it;       //我们要删除第三个,把ss赋值为第三个元素的值
    it--;         //此时it--,把it向前移,当然也可以it++向后移
    s.erase(ss);  //删除第三个元素
    it++;      //把it重新指向第三个元素
    cout<<*it;   //此时*it的值不是3,而是4,元素3被删除

set删除某位置元素_第1张图片

最后,每次写完STL有关,%sys,虽然这货说ljstl,但他仍然是stl大神……

你可能感兴趣的:(小技巧)