list链表:STL中的链表是双向循环链表
迭代器不支持随机访问
包括数据域和指针域
构造:默认、区间、拷贝、n个elem
赋值:重载=、区间,n个elem
交换:swap();
大小:resize();
插入和删除:remove(); insert(); erase();
数据存取:无法使用[]和at, 可以使用front();back();
不支持随机访问的迭代器,不可以使用标准算法
反排:reverse();
queue:队列容器,先进先出
stack:栈,先进后出
vector:单端数组
动态扩展:开辟新空间
迭代器支持随机访问
deque:双端数组
内部有中控器,中控器中有地址
缓冲区中放内容
迭代器支持随机访问
set容器
插入时会自动排序
关联式容器,底层结构是二叉树
set不允许有重复元素
multiset允许有重复的元素
插入用insert();
set不能重置大小
insert()返回的是pair对组的形式,而multiset返回的是迭代器
通过仿函数指定函数的排序规则(仿函数后面+const)
对于自定类型,例如Person,必须指定排序规则(仿函数后面+const)
pair<string,int>p对组
map容器
所有容器都是pair
第一个元素为键值,第二个元素为实值
所有元素会根据键值自动排序
关联式容器,底层结构是二叉树
find要用迭代器接收
multimap<int,Person>::iterator pos=m.find(CEHUA);//返回的是起始位置
int count = m.count(CEHUA);//统计数量
int index = 0;
for (; pos != m.end() && index < count; pos++, index++)
{
cout << "员工姓名: " << pos->second.m_Name << " 薪资为; " << pos->second.m_Salary << endl;
}
标签:容器,set,迭代,insert,链表,排序 From: https://www.cnblogs.com/gaishuobulao/p/17304576.html