TFM*_*TFM 3 c++ stdmap language-lawyer
说我有:
bool operator<(Type const& lhs, Type const& rhs) { /* ... */ }
std::map<Type, void*> m;
Run Code Online (Sandbox Code Playgroud)
如果我现在这样做
Type t{};
m.find(t);
Run Code Online (Sandbox Code Playgroud)
将t总是在左侧的参数中结束,operator<并将m它的元素与右侧的参数进行比较(反之亦然)?
或者这种实现是否依赖,可以采用哪种方式?
无论如何都没有声明的保证,在实践中你可以期望在比较的任何一方找到你的操作数,因为操作最终需要观察¬(A<B) && ¬(B<A)以确定A和之间的相等性B.
让您的运营商尽可能抽象,这样无关紧要.使它只考虑它接收的两个参数的值,而不知道任何容器或查找操作.
| 归档时间: |
|
| 查看次数: |
52 次 |
| 最近记录: |