有時候,我不得不結構像這樣 -如何在集合結構中實現C++(in)相等運算符?
struct aggregate1 {
std::string name;
std::vector<ValueT> options;
size_t foobar;
// ...
};
- 在哪裏(中)平等簡單地定義爲(在)所有成員的平等:lhs_name == rhs_name && lhs_options == rhs_options && lhs_foobar == rhs_foobar
。
什麼是最好的實現方式? (最佳爲:(Runtime-)效率,可維護性,可讀性)
- 在
operator!=
operator!=
術語operator==
在operator==
- 單獨實施的條款
==
和!=
- 作爲構件或設置爲免費功能?
注意,這個問題只是關於(不)平等OPS,作爲比較(<
,<=
,...)不會使這種聚集太多的感覺。
同意。如果您仍然遇到運行效率問題,那麼您可能會考慮是否有些成員更可能與其他成員不同,並比較其他成員。 – 2011-02-14 20:26:54