我正在编写一个程序来制作学校计算机的清单。
我有一个班级Equip
,其中包含2个字符串作为变量成员m_owner
和m_type
。
我有一个vector<Equip> v
充满了一堆物品装备。
我使用 csv 文件作为我程序的参数来填充矢量。
说v
包含5个对象:
Equip e1("LaboA", "laptop");
Equip e2("LobaA", "server");
Equip e3("HR", "printer");
Equip e4("LobaA", "laptop");
Equip e5("LobaC", "router");
我正在尝试以数据透视表的形式显示v的内容,如下面的屏幕截图所示:
我尝试了以下内容:
void matrix(const vector<Equip>& v)
{
vector<Equip> tmp = v;
sort(tmp.begin(), tmp.end());
vector<Equip>::iterator it = unique(tmp.begin(), tmp.end(), SameOwner());
tmp.resize(std::distance(tmp.begin(), it));
for(auto i = tmp.begin(); i != tmp.end(); ++i)
{
int j = count_if(v.begin(), v.end(), IsPrinter());
cout << i->getOwner() << " : " << j << endl;
}
}
我已经编写了所有方法,因此代码编译并执行,但它没有按照我想要的方式执行。
我理解为什么,但我不明白如何做到这一点。
你能告诉我如何实现这一目标吗?我在这里不知所措。
谢谢,
学家