有 this other question asking about how comparing pointers is supposed to be interpreted wrt C++ Std。
所以我想知道 C++ 标准对于在有序标准库 (STL) 容器中使用指针作为键有什么看法——即允许有std::map<T1*, T2>
这是由于std::less
还是builtin operator <
的规范?
最佳答案
是的,因为它使用 std::less
,即使 <
没有,它也是产生总顺序所必需的。 ( <
将被允许将来自不同序列的不同指针视为相等,如果您插入来自不同序列的指针,这将导致 map
等的奇怪行为)。
关于c++ - 是否允许指针作为有序 STL 容器中的键?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4913161/