极客班STL第二周笔记

这篇博客主要探讨了C++ STL中的Multimap容器,它作为map的一种变体,允许相同的Key多次映射到不同的Value,是关联容器的重要组成部分。
摘要由CSDN通过智能技术生成

几种典型容器

Vector
与array类似,在内存中的表现形式为一段地址连续的空间,是一个能存放任意型别的动态数组,有自动扩容的功能。
#include<vector>
int  main(){
  std::vector v;
}
Deque
是能够存放任意型别的双向队列,使用大块分配内存的内存管理方法。
#include<deque>
int main(){
  std::deque dq;
}
List
能够存放任意型别的双向链表。
#include<list>
int main(){
  std::list l;
}
Stack
即数据结构中所学的Stack栈,先进后出,只有一个出口。
#include<stack>
int main(){
  std::stack s;
}
Queue
队列,两个出口,前端增加新元素,后端移除已有元素。
#include<queue>
int main(){
  std::queue q;
}
Map and Multimap
Map是一种关联容器,存储对象为Key/Value pair,不允许有重复的Key 。map存储的对象必须是具备可排序性的,默认采取less定义排序行为,也可以通过仿函数自定义排序行为。
template<class _Kty,class _Ty,class _Pr=less<_Kty>,
         class _Alloc=allocator<pair<const _Kty,_Ty>>>
class map{…}
#include<map>
int main(){
  std::map<T1,T2,排序行为> q;
}

Multimap是类似于map的关联容器,允许Key重复。

std::multimap<int,Employee,ReverseId> mm(item,item+3);
mm.insert(std::make_pair(1,Employee(L"Peter")));
Set andMultiset
Set是一种关联容器,存储的对象本身既是Key又是Value,不允许有重复的Key , Set存储的对象必须是具备可排序性的。可以通过仿函数自定义排序行为,默认使用less定义排序行为(operator<)。
set
特别注意:①用作排序key的元素不允许进行改变。②set的实现方式不允许通过迭代器改变对象成员。
set更改对象成员
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值