您的位置:首页 > 其它

复习set、map的常用接口【菜鸟学习日记】

2018-04-02 20:10 495 查看

set&&map



set (K)

map(K V)

1、multiset与set的区别就是,multiset允许键值重复,multimap同理;

2、set和map的底层都是用红黑树实现的 ;

在map里存的是一个pair对象

template<class K,class V>
struct pair{
K  first;  //key
V  second; //value
}


map



要注意end返回的是最后一个的下一个,其他的没有什么





insert三个版本

- 插入一个

- 特定位置插入

- 插入一个区间

主要看第一个版本

pair<iterator,bool>insert(const value_type& val)


返回一个pair,除了返回一个迭代器外,还返回一个bool值,标志是否插入成功



operator[ ]其实是调用insert实现的





insert&&operator[ ]

void testmap()
{
map<string, size_t> mymap;
//insert
mymap.insert(make_pair("linda", 5));
mymap.insert(make_pair("peter", 6));
mymap.insert(make_pair("xiaoming", 7));

//operator[ ]
mymap["zhangsan"] = 4;
mymap["lisi"] = 8;

//begin、end
map<string, size_t>::iterator it = mymap.begin();
while (it != mymap.end())
{
cout << it->first << ":" << it->second << endl;
it++;
}
}




1、operator[ ]可以修改value的值,但insert不可以



2、value的值必须有必须有默认的拷贝构造

这里size_t类型默认为0,如果是string默认为空字符串

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: