Week11-C++基础6(set容器、list容器、stack容器、queue容器以及map容器的学习)

一、set容器
1、set构造函数
①set st;//set默认构造函数:
②mulitset mst; //multiset默认构造函数:
③set(const set &st);//拷贝构造函数

2 set赋值操作
①set& operator=(const set &st);//重载等号操作符
②swap(st);//交换两个集合容器

3 set大小操作
①size();//返回容器中元素的数目
②empty();//判断容器是否为空

4 set插入和删除操作
①insert(elem);//在容器中插入元素。
②clear();//清除所有元素
③erase(pos);//删除pos迭代器所指的元素,返回下一个元素的迭代器。
④erase(beg, end);//删除区间[beg,end)的所有元素 ,返回下一个元素的迭代器。
⑤erase(elem);//删除容器中值为elem的元素。

5、查找操作
①lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器,用迭代器接收
②upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器,用迭代器接收
③equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。上下限 就是lower_bound upper_bound

二、list容器
1、list的构造函数
list lstT;//list采用采用模板类实现,对象的默认构造形式:
list(beg,end);//构造函数将[beg, end)区间中的元素拷贝给本身。
list(n,elem);//构造函数将n个elem拷贝给本身。
list(const list &lst);//拷贝构造函数。

2、 list数据元素插入和删除操作
push_back(elem);//在容器尾部加入一个元素
pop_back();//删除容器中最后一个元素
push_front(elem);//在容器开头插入一个元素
pop_front();//从容器开头移除第一个元素
insert(pos,elem);//在pos位置插elem元素的拷贝,返回新数据的位置。
insert(pos,n,elem);//在pos位置插入n个elem数据,无返回值。
insert(pos,beg,end);//在pos位置插入[beg,end)区间的数据,无返回值。
clear();//移除容器的所有数据
erase(beg,end);//删除[beg,end)区间的数据,返回下一个数据的位置。
erase(pos);//删除pos位置的数据,返回下一个数据的位置。
remove(elem);//删除容器中所有与elem值匹配的元素。

3、 list大小操作
size();//返回容器中元素的个数
empty();//判断容器是否为空
resize(num);//重新指定容器的长度为num,
若容器变长,则以默认值填充新位置。
如果容器变短,则末尾超出容器长度的元素被删除。
resize(num, elem);//重新指定容器的长度为num,
若容器变长,则以elem值填充新位置。
如果容器变短,则末尾超出容器长度的元素被删除。

4 、list赋值操作
assign(beg, end);//将[beg, end)区间中的数据拷贝赋值给本身。
assign(n, elem);//将n个elem拷贝赋值给本身。
list& operator=(const list &lst);//重载等号操作符
swap(lst);//将lst与本身的元素互换。

5、 list数据的存取
front();//返回第一个元素。
back();//返回最后一个元素。

6、 list反转排序
reverse();//反转链表,比如lst包含1,3,5元素,运行此方法后,lst就包含5,3,1元素。
sort(); //list排序

三、stack容器(栈容器)(先进后出)
1、 栈顶 top
2、压栈 push
3、 弹出栈顶 pop
4、大小 size
5、 为空 empty

四、queue容器(先进先出)
1、 队头 front 队尾 back
2、 入队 push
3、 弹出队头 pop
4、 大小 size
5、 为空 empty
注意:只有queue的顶端元素,才有机会被外界取用。同时Queue不提供遍历功能

五、map容器( key不可以重复)
1、四种插入方式
① m.insert(make_pair(1, 10));
②m.insert(make_pair(2, 20));
③m.insert(make_pair(3, 30));
④m.insert(make_pair(4, 40));
2、map查找操作
①find(key);//查找键key是否存在,若存在,返回该键的元素的迭代器;/若不存在,返回map.end();
②count(keyElem);//返回容器中key为keyElem的对组个数。对map来说,要么是0,要么是1。对multimap来说,值可能大于1。
③lower_bound(keyElem);//返回第一个key>=keyElem元素的迭代器。
④upper_bound(keyElem);//返回第一个key>keyElem元素的迭代器。
⑤equal_range(keyElem);//返回容器中key与keyElem相等的上下限的两个迭代器。

欢迎关注技术公众号,获取更多软件学习干货!
在这里插入图片描述

我们能为你提供什么?
技术辅导:C++、Java、嵌入式软件/硬件
项目辅导:软件/硬件项目、大厂实训项目
就业辅导:就业全流程辅导、技术创业支持
对接企业HR:培养输送优质性人才

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值