我试图弄清楚如何为指向 Item 类对象的 Item Pointer 类实现 operator< 重载。它是存储指向 STL 集中项的指针的程序的一部分。对于有序的 STL 集(按标题字母顺序),重载是必需的。我知道下面的 ItemPtr 重载的代码是错误的。我以为我可以取消引用指针以获取实际项目,但我不知道如何实现这一点。我希望我走在正确的轨道上。我感谢任何人可以分享的任何指针(没有双关语)。
bool operator<(const Item& i1, const Item& i2)
{
const char* str1 = i1.getTitle().c_str();
const char* str2 = i2.getTitle().c_str();
return strcmp(str1, str2);
}
bool operator<(const ItemPtr& ip1, const ItemPtr& ip2)
{
const Item& i1 = *ip1;
const Item& i2 = *ip2;
return i1 < i2;
}
谢谢。