链表

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;
}

 

posted @ 2023-04-15 18:33  该说不唠  阅读(31)  评论(0)    收藏  举报