C++学习笔记二

参考博客
https://blog.csdn.net/sevenjoin/article/details/81943864
https://blog.csdn.net/yanying1113/article/details/98957833

知识点

1、红黑树实现
2、时间复杂度,插入:O(logN),查找:O(logN),删除:O(logN)
3、key值唯一不可重复
4、插入自动建立key、value对应并排序

使用

1、构造,声明模板类参数类型

 map<int, string> map_;

2、插入
insert方法,重复key值插入不会覆盖

map_.insert(pair<int, string>(4, "ddddddd"));

下标,重复key值插入会覆盖,用下标访问map中不存在的元素时,将导致向map中添加该下标所指向的新元素,其值会根据类型默认值或默认构造函数进行初始化。

map_[4] = "4444444";

3、删除

iterator erase(iterator it); //通过一个条目对象删除
iterator erase(iterator first, iterator last);//删除范围[first, last)内对象
size_type erase(const Key& key); //通过关键字删除
map的清空函数clear()就相当于 Map.erase(Map.begin(), Map.end());

4、遍历

for (map<int, string>::iterator iter = map_.begin(); iter != map_.end(); iter ++) {
    cout << iter->first << " " << iter->second << endl;
}

其中,begin指向第一个元素,end指向末尾(但不是最后一个元素)

// begin指向第一个元素,end指向末尾(但不是最后一个元素)
cout << "rbegin: " << map_.rbegin()->first << " " << map_.rbegin()->second << endl;
//cout << "rend" << map_.rend()->first << " " << map_.rend()->second << endl;
cout << "begin: " << map_.begin()->first << " " << map_.begin()->second << endl;
//cout << "end" << map_.end()->first << " " << map_.end()->second << endl;
cout << "--end: " << (--map_.end())->first << " " << (--map_.end())->second << endl;

4、统计
size方法

cout << map_.size() << endl;

count方法,返回map中k出现的次数,为0当然就表示不存在,因为k是唯一,只能用来判断k是否存在。

cout << map_.count(1) << endl;

5、查找,若查找不到这返回end(),所以使用前要判断

map<int, string>::iterator it = map_.find(1);
if (it != map_.end()) {
    cout << it->second << endl;
}

6、其他方法
begin()         返回指向map头部的迭代器

clear()        删除所有元素

count()         返回指定元素出现的次数

empty()         如果map为空则返回true

end()           返回指向map末尾的迭代器

equal_range()   返回特殊条目的迭代器对

erase()         删除一个元素

find()          查找一个元素

get_allocator() 返回map的配置器

insert()        插入元素

key_comp()      返回比较元素key的函数

lower_bound()   返回键值>=给定元素的第一个位置

max_size()      返回可以容纳的最大元素个数

rbegin()        返回一个指向map尾部的逆向迭代器

rend()          返回一个指向map头部的逆向迭代器

size()          返回map中元素的个数

swap()           交换两个map

upper_bound()    返回键值>给定元素的第一个位置

value_comp()     返回比较元素value的函数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值