vector去除重覆混合技

  1. vector去除重覆混合技
    1. 去除自身重覆的元素。
    2. 去除外來指定元素

vector去除重覆混合技

原文連結: https://darkblack01.blogspot.com/2014/02/vector.html
移植時的最後更新日期: 2015-12-23T14:16:57.647+08:00

去除自身重覆的元素。

void removeRepeatMember()
{
vector<CTest> member;

/* member.push_back(lots of data) */

std::sort(result.begin(), result.end());
result.erase(std::unique(result.begin(), result.end()), result.end());
}

去除外來指定元素

void removeMember(const CTest& objTest)
{
result.erase(remove(result.begin(), result.end(), objTest), result.end());
}
上例的vector是裝string,如果是裝自訂的類別CTest,則需要重載運算子。
sort()需要重載<運算子。
unique()需要重載==運算子。
class CTest
{
public:
bool operator< (const CTest& oCompany ) const;
bool operator==(const CTest& oCompany ) const;
}

參考:
STL—vector删除重复元素
std::remove - c++ Reference