gpt4 book ai didi

c++ - key = pair 的多重映射

转载 作者:行者123 更新时间:2023-11-30 02:03:14 24 4
gpt4 key购买 nike

我有一个 multimap<pair<string,string>,vector> > mmap;我想用两个循环迭代它:

  1. 键的第一个元素:key.first
  2. 然后 key.second

equal_range方法在这种情况下有效吗?怎么写?

 pair<multimap<pair<string,string>,vector>::iterator,
multimap<pair<string,string>,vector>::iterator> key_range = mmap.equal_range( ?? );

最佳答案

multimap 只支持单次排序,对于 pair 来说默认是两个元素的字典顺序:

(A, A) (A, B) ... (A, Z) (B, A) (B, B) ... (B, Z) ... (Z, A) ... (Z, Z)

如果您需要通过两个不同的键进行索引,您最好使用另一个容器,例如Boost.MultiIndex .您可以自己实现相同的效果,例如将项目存储在 list 中并保存从键到列表迭代器的映射:

list<vector> items;
map<string, list<vector>::iterator> index1;
map<string, list<vector>::iterator> index2;

关于c++ - key = pair 的多重映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12215011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com