如何检查std :: map插入是否在c ++中失败?

时间:2012-03-14 13:08:16

标签: c++

我有自定义数据结构Class ClientClientList

在ClientList中我做

map<ULONG, Client*> list;

然后我按

添加元素
void ClientList::add(Client *client) {
list.insert(std::pair<ULONG,Client*>(client->getID(),client));
}

如何检查insert是否失败?

2 个答案:

答案 0 :(得分:7)

map::insert返回pair< iterator, bool >,其中bool表示项目是否已插入,或者密钥是否已存在于列表中。如果密钥已存在,则迭代器将指向此项。

答案 1 :(得分:1)

来自cplusplus.it

  

pair<iterator,bool> insert ( const value_type& x );返回一对,其成员对:: first设置为迭代器,指向新插入的元素或指向已在地图中具有相同值的元素。如果插入了新元素,则对中的pair :: second元素设置为true;如果存在具有相同值的元素,则设置为false。