struct SIndexData
{
string sCode;
int iDate;
int iTime;
double f1;
SIndexData():
iDate(0),
iTime(0)
{
}
bool operator == (const SIndexData & obj) const //重载 == 操作符
{
return sCode == obj.sCode && iDate == obj.iDate && iTime == obj.iTime;
}
bool operator < (const SIndexData & obj) const //重载 < 操作符
{
return sCode == obj.sCode && iDate == obj.iDate && iTime < obj.iTime;
}
};
struct SIndex
{
vector<SIndexData> vData;
};
int main()
{
SIndex sIndex;
SIndexData sIndexData;
sIndexData.sCode = "000001";
sIndexData.iDate = 20171025;
sIndexData.iTime = 94000;
sIndexData.f1 = 7.5;
sIndex.vData.push_back(sIndexData);
SIndexData sIndexData1;
sIndexData1.sCode = "000001";
sIndexData1.iDate = 20171025;
sIndexData1.iTime = 94000;
sIndexData1.f1 = 7.8;
sIndex.vData.push_back(sIndexData1);
sort(sIndex.vData.begin(), sIndex.vData.end()); //使用sort()进行排序,排序后的相同元素集中出现
sIndex.vData.erase(unique(sIndex.vData.begin(), sIndex.vData.end()), sIndex.vData.end());
//unique()函数将重复的元素放到vector的尾部 然后返回指向第一个重复元素的迭代器 再用erase函数擦除从这个元素到最后元素的所有的元素。
}