std map find
场景:怎么对std:map中的second成员进行find
如何对std::map中的second成员进行find?
对于一个std::map对象,如要对first成员进行匹配,可以用find(key)实现,但是如果我要对second成员匹配怎么办??难道必须要遍历map然后一一进行对比么?
假设我现在有这样一个map, std::map <std::string key, std::string element > , 可否有简便的方法对map中的第二个std::string进行匹配查找呢?或者有没有什么办法在不进行遍历的情况下将key和element互换?
谢谢了!
------解决方案--------------------
多键问题。
首先value要不重复,而且两个方向都要是一一映射。
既使这样,也没什么好办法,建两个map分别往对方映射吧。
而如果对于同一个数据,要支持更多(三种以上)的快速查找的key,那可以考虑把数据存放在一个顺序容器中,然后能过多个map分别让一种key映射到那个数据的地址或迭代器之类的来处理。
如何对std::map中的second成员进行find?
对于一个std::map对象,如要对first成员进行匹配,可以用find(key)实现,但是如果我要对second成员匹配怎么办??难道必须要遍历map然后一一进行对比么?
假设我现在有这样一个map, std::map <std::string key, std::string element > , 可否有简便的方法对map中的第二个std::string进行匹配查找呢?或者有没有什么办法在不进行遍历的情况下将key和element互换?
谢谢了!
------解决方案--------------------
多键问题。
首先value要不重复,而且两个方向都要是一一映射。
既使这样,也没什么好办法,建两个map分别往对方映射吧。
而如果对于同一个数据,要支持更多(三种以上)的快速查找的key,那可以考虑把数据存放在一个顺序容器中,然后能过多个map分别让一种key映射到那个数据的地址或迭代器之类的来处理。