C++ 使用映射c+计算重复项+;
我试着用map和vector of struct来计算重复项 我在这一部分一直有错误:C++ 使用映射c+计算重复项+;,c++,vector,duplicates,C++,Vector,Duplicates,我试着用map和vector of struct来计算重复项 我在这一部分一直有错误: void display(const std::map<ChildInfo, unsigned int>& counts) { for (auto count = counts.begin(); count != counts.end(); ++count) { std::cout << "Value " << count->first
void display(const std::map<ChildInfo, unsigned int>& counts) {
for (auto count = counts.begin(); count != counts.end(); ++count) {
std::cout << "Value " << count->first << " has count " << count->second << std::endl;
}
}
void显示(const std::map&counts){
对于(自动计数=计数。开始();计数!=计数。结束();+计数){
std::cout在函数显示中定义操作符的重载,您要显示ChildInfo
元素(映射的count->first
元素,但是您没有定义一个操作符count->first
指的是什么?它是ChildInfo
对象吗?如果是,那么您应该如何在不重载的情况下打印呢?将它减少到a,您将看到它与重复或映射的计数完全无关@PRP为什么我需要超负荷@iksemyonov回答解释了我在评论中说的。看到了吗。
std::ostream& operator<<(std::ostream& str, const ChildInfo& ci) {
str << "id " << ci.id << " gram " << ci.gram << "\n";
return str;
}
ostream& operator << (ostream & os, const ChildInfo& lhs)
{
os << lhs.id;
return os;
}