去除自身重覆的元素。
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
沒有留言:
張貼留言
(什麼是留言欄訊息?)