gpt4 book ai didi

c++ - 遍历 equal_range 结果集

转载 作者:行者123 更新时间:2023-11-27 23:17:40 27 4
gpt4 key购买 nike

我有以下无序 multimap :

std::tr1::unordered_multimap<unsigned int, unsigned int > duplicates;

然后我尝试使用以下方法获取键的值

std::pair<std::tr1::unordered_multimap<unsigned int, unsigned int>,std::tr1::unordered_multimap<unsigned int, unsigned int> > range = duplicates.equal_range(id);

然后使用for循环得到多个结果:

for (std::tr1::unordered_multimap<unsigned int, unsigned int>::iterator it=range.first; it!=range.second; ++it)

但是我得到以下错误:

ref_impl/core.cpp:306:84: error: conversion from 'std::tr1::unordered_multimap<unsigned int, unsigned int>' to non-scalar type 'std::tr1::_Hashtable<unsigned int, std::pair<const unsigned int, unsigned int>, std::allocator<std::pair<const unsigned int, unsigned int> >, std::_Select1st<std::pair<const unsigned int, unsigned int> >, std::equal_to<unsigned int>, std::tr1::hash<unsigned int>, std::tr1::__detail::_Mod_range_hashing, std::tr1::__detail::_Default_ranged_hash, std::tr1::__detail::_Prime_rehash_policy, false, false, false>::iterator {aka std::tr1::__detail::_Hashtable_iterator<std::pair<const unsigned int, unsigned int>, false, false>}' requested
ref_impl/core.cpp:306:101: error: no match for 'operator!=' in 'it != range.std::pair<std::tr1::unordered_multimap<unsigned int, unsigned int>, std::tr1::unordered_multimap<unsigned int, unsigned int> >::second'

有什么建议吗?

最佳答案

unordered_multimap::equal_range 返回一对迭代器,而不是一对 unordered_multimap。将第二行更改为以下内容,一切正常:

typedef std::tr1::unordered_multimap<unsigned int, unsigned int>::iterator iterator;
std::pair<iterator, iterator> range = duplicates.equal_range(id);

关于c++ - 遍历 equal_range 结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15444840/

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