`

stl map中用对象作为key

阅读更多

stl map中有时会用到使用自定义对象做key的情况,需要注意:

 

如果不指定compare函数,就要重载key类的<运算符,要注意重载的<运算符要有互补性,即A<B为true时,B<A必须为false。这种如果重载有漏洞在debug下会报错,但在realise下警告都没有。这样很有可能在使用时发现map中只有一个key。

分享到:
评论

相关推荐

    STL中map用法详解

    其中,`map`容器是STL中用于存储键值对(key-value pairs)的数据结构,适用于关联式查找和操作。本文将深入解析STL中的`map`用法,帮助你理解其基本概念、操作和应用场景。 1. **map的基本概念** `map`是一个关联...

    C++如何删除map容器中指定值的元素详解

    大家都知道map容器是C++ STL中的重要一员,平时会遇到删除map容器中value为指定元素的问题,例如删除所有字符串为”123″或者能整除3的元素。 一、map容器下的方法说明 由于map容器下的方法较多,这里只列举代码中用...

    【c++】——map和set(csdn)————程序.pdf

    C++中的`map`和`set`是STL(Standard Template Library)中两种重要的关联容器。它们都基于红黑树数据结构,提供了高效的数据插入、查找和删除操作。以下是关于`set`和`map`的详细说明: **set** 1. **底层结构**...

    Thinking In C++ VolumeII.pdf

    容器是C++ STL中用于存储数据的对象。 - **序列容器**:如 `std::vector`、`std::list` 和 `std::deque`。 - **关联容器**:`std::map`、`std::set` 等,支持基于键的快速查找。 - **容器适配器**:如 `std::stack`...

    Windows下C++多线程SOCKET服务代码

    程序中用到STL的std::map和std::list,也大量的运行了模板类,如:关于线程的参数 ARGS即为模板类:template &lt;class T&gt; ARGS{}、还有一个就是SOCKET结构体: HOSTSTRUCTSTRCT的定义也是用到了模板类。...

    Widnows环境C++多线程网关程序

    程序中用到STL的std::map和std::list,也大量的运行了模板类,如:关于线程的参数 ARGS即为模板类:template &lt;class T&gt; ARGS{}、还有一个就是SOCKET结构体: HOSTSTRUCTSTRCT的定义也是用到了模板类。...

Global site tag (gtag.js) - Google Analytics