} } }

    erase与unique结实用于删除反复元素

    添加时间:2013-6-7 点击量:

    STL中的unique只能把反复的元素全部放到容器末尾,并不克不及真正把反复元素删除. 这里应用unique 和 erase 则可达到删除结果


    示例代码如下:



    #include <iostream>
    
    #include <algorithm>
    #include <string>
    #include <vector>
    using namespace std;

    void print(string temp)
    {
    cout<<temp<<endl;
    }

    int main()
    {
    vector<string> test;
    vector<string>::iterator pos;
    string temp;

    for (int i=0; i<6;++i)
    {
    cin>>temp;
    test.push_back(temp);
    }

    cout<<请输入;
    cin>>temp;
    pos=remove(test.begin(),test.end(),temp);//仅仅把temp值赋空并且放到最后一位 没有删除
    // remove返回最后一个未被移除元素的下一地位
    test.erase(pos,test.end()); //删除pos到test.end()的所有元素
    for_each(test.begin(),test.end(),print);
    //若然test是list<string> 则直接 test.remove(temp)即可完成删除
    }


    原来,再大的房子,再大的床,没有相爱的人陪伴,都只是冰冷的物质。而如果身边有爱人陪伴,即使房子小,床小,也觉得无关紧要,因为这些物质上面有了爱的温度,成了家的元素。—— 何珞《婚房》#书摘#
    分享到: