【发布时间】:2016-02-12 20:17:25
【问题描述】:
我正在尝试研究如果我在 STL 列表中使用该类型的用户定义类型的哪些运算符需要重载。
看来我至少需要 sort() 和 remove() 功能的比较运算符。
我无法在 cplusplus.com 等网站上的模板文档中找到任何/所有必要的运算符重载的清晰描述。这是否意味着列表模板不需要我的类重载运算符?如果是这样,这怎么可能?
【问题讨论】:
我正在尝试研究如果我在 STL 列表中使用该类型的用户定义类型的哪些运算符需要重载。
看来我至少需要 sort() 和 remove() 功能的比较运算符。
我无法在 cplusplus.com 等网站上的模板文档中找到任何/所有必要的运算符重载的清晰描述。这是否意味着列表模板不需要我的类重载运算符?如果是这样,这怎么可能?
【问题讨论】:
您只需要间接调用的运算符。在您致电list.sort 之前,您不需要operator<。
也就是说,您可能需要的其他运算符是复制构造函数、赋值、移动运算符和默认构造函数。专业化 std::swap 也可能有用。
【讨论】: