200919阶段一C++STL容器
目录
- 一、学习的知识点
- 标准模板库
- Container容器
- vector向量
- deque双端队列
- list链表
- 迭代器
- 二、上课没有听懂或者没有理解的地方
- 三、当天学习的收获
- 四、作业的思路、不会的地方
- 五、其他需要反馈的问题
一、学习的知识点
标准模板库
包含容器、算法、迭代器、函数对象、分配器、适配器
Container容器
各种数据结构,容器类是容纳、包含一组元素或元素集合的对象
- 同类容器、异类容器
- 顺序容器、关联容器
- 有序、便于管理
- 所有的容器都继承容器类
vector向量
- 数组名是地址,长度是固定的,地址在内存中是连续的;保存同类型的数据;访问:下标访问、地址偏移
- 向量:顺序容器,地址连续,用于容纳不定长的线性序列,动态改变大小;访问:下标访问(veclist[0])、迭代器(操作容器的指针)
- 相当于类模板
#include
int main()
{vector<int> veclist;//会走构造//vector veclist(2,100,100);//长度是2,内容是100 vector<int>::iterator it;//迭代器是属于容器的,容器是什么类型,迭代器就是什么类型veclist.size();//返回向量元素的个数veclist.push_back(1);//在尾巴处插入数据veclist.insert(veclist.begin(),4);//在向量头插入数据4veclist.erase(veclist.begin()+2,veclist.begin()+4);//根据迭代器位置删除某个,根据迭代器范围删除一片veclist.clear();//删除所有veclist.pop_back();//删除最后一个元素//访问it=veclist.begin();*it;it++;
}
deque双端队列
和向量没多少区别,可以从两端入队或者出队
#include deque<Cstaff *> deq;//deque 队列
deque<Cstaff *>::iterator deit;//迭代器
Cstaff *st1=new Cstaff(1001,"admin","123456");
Cstaff *st2=new Cstaff(1002,"admin","123456");
deq.push_back(st1);//插入
list链表
- 地址不连续,不能通过下标访问
- 存放双向链表
- 拼接
#include
list<Cstaff> stafflist;
list<Cstaff> stafflist_tmp;
list<Cstaff>::iterator liit;//迭代器
stafflist.push_back(Cstaff(1001,"admin","123456",1));//插入
stafflist.push_back(Cstaff(1002,"admin","123456",1));
for(liit=stafflist.begin();liit!=stafflist.end();++liit)
{cout<<(*liit).getID()<<endl;
}stafflist.splice(stafflist.end(),stafflist_tmp);//两条链表拼接
迭代器
迭代器是面向对象版本的指针,提供了访问容器、序列中每个元素的方法
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
学习了容器,可以使用许多已经封装好的工具
四、作业的思路、不会的地方
未开始
五、其他需要反馈的问题
无
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
