【发布时间】:2018-11-14 07:59:27
【问题描述】:
我想我有一个非常简单的问题,但是... 我必须按自己的成员对向量进行排序,但我不能。
这是我用另一个向量中的对象填充向量的函数。 我必须按特定产品对向量 SortDealers 进行排序,但我不知道如何将 Stock 的名称发送给我的重载运算符
void CShop::sortVector(const CStock& s1)
{
vector<CDealer> SortDealers;
vector<CDealer* >::iterator it = Dealers.begin();
while (it != Dealers.end())
{
if ((*(*it)).ComapareNameProducts(s1))
{
SortDealers.push_back(*(*it));
}
it++;
}
sort(SortDealers.begin(), SortDealers.end());
copy(SortDealers.begin(), SortDealers.end(), ostream_iterator<CDealer>(cout, "\n"));
}
这是重载运算符<:>
bool CDealer::operator<(const CDealer & o1)
{
unsigned res1 = 0;
unsigned res2= 0;
map<const CStock, pair<unsigned, double>>::const_iterator it = Stock.begin();
map<const CStock, pair<unsigned, double>>::const_iterator iter = o1.Stock.begin();
while (it != Stock.end())
{
res1 += it->second.first;
it++;
}
while (iter != o1.Stock.end())
{
res2 += iter->second.first;
iter++;
}
return (res1 < res2);
}
【问题讨论】:
标签: algorithm c++11 vector stl