这个问题很可能是重复的,但我找不到它的参考。
我正在查看std::multiset::find和std::multimap::find函数,我想知道如果多次插入特定键,将返回哪个元素?
从描述:
请注意,此函数将迭代器返回到单个元素(可能是多个等效元素)
问题
是否保证单个元素是第一个插入的元素还是随机的?
背景
我问的原因是我正在实现类 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
. 可能吗?如果是这样,它将如何实施?