vector去除重覆混合技
¶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
發表於
tags:
{ C_and_Cpp }