我正在看着std::multiset::find& std::multimap::find的功能,我想知道如果多次插入一个特定的键,哪个元素将被返回?
从描述:
Notice that this function returns an iterator to a single element (of
the possibly multiple equivalent elements)
题
是否保证单个元素是第一个插入或是随机的?
背景
我问的原因是我正在实现类似class的multipmap:
typedef std::vector<Item> Item_vector;class Item{ string m_name;};class MyItemmultiMap{public: // forgive me for not checking if key exist in the map. it is just an example. voID add_item( const Item& v ) { m_map[v.m_name].push_back(v); } // is returning the first item in the vector mimic std::multimap::find behavior? Item& get_item( const string& v ) { return m_map[v][0]; } private: std::map<string,Item_vector> m_map;};
我希望get_item()正好像std :: multimap :: find一样工作.可能吗?如果是,如何实施?
解决方法 如果存在多个查找方法可能返回任意一个,尽管您的STL实现可能确实只是给出第一个.使用’lower_bound’方法更安全,并从中重复(参见std::multimap::lower_bound).请注意,如果您要查找的内容不存在,那么’lower_bound’会返回另一个元素的引用!
总结以上是内存溢出为你收集整理的c – 哪些元素将从std :: multimap :: find返回?全部内容,希望文章能够帮你解决c – 哪些元素将从std :: multimap :: find返回?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)