200919阶段一C++STL容器
目录
- 一、学习的知识点
- 标准模板库
- Container容器
- vector向量
- deque双端队列
- list链表
- 迭代器
- 二、上课没有听懂或者没有理解的地方
- 三、当天学习的收获
- 四、作业的思路、不会的地方
- 五、其他需要反馈的问题
一、学习的知识点
标准模板库
包含容器、算法、迭代器、函数对象、分配器、适配器
Container容器
各种数据结构,容器类是容纳、包含一组元素或元素集合的对象
- 同类容器、异类容器
- 顺序容器、关联容器
- 有序、便于管理
- 所有的容器都继承容器类
vector向量
- 数组名是地址,长度是固定的,地址在内存中是连续的;保存同类型的数据;访问:下标访问、地址偏移
- 向量:顺序容器,地址连续,用于容纳不定长的线性序列,动态改变大小;访问:下标访问(veclist[0])、迭代器(操作容器的指针)
- 相当于类模板
#include<vector>
int main()
{vector<int> veclist;//会走构造//vector<int> veclist(2,100,100);//长度是2,内容是100vector<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>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>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);//两条链表拼接
迭代器
迭代器是面向对象版本的指针,提供了访问容器、序列中每个元素的方法
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
学习了容器,可以使用许多已经封装好的工具
四、作业的思路、不会的地方
未开始
五、其他需要反馈的问题
无
200919阶段一C++STL容器相关推荐
- C++ 笔记(19)— 标准模板库(STL容器、STL迭代器、STL算法、STL容器特点、STL字符串类)
C++ 标准库可以分为两部分: 标准函数库: 这个库是由通用的.独立的.不属于任何类的函数组成的.函数库继承自 C 语言. 面向对象类库: 这个库是类及其相关函数的集合. C++ 标准库包含了所有的 ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——遍历和删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请 ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(Windows VirtualStudio)——删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(Windows VirtualStudio)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除 ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——遍历和查找
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析各个容器中遍历和查找的性能.(转载请指明出于breakso ...
- C++拾趣——STL容器的插入、删除、遍历和查找操作性能对比(ubuntu g++)——删除
相关环境和说明在<C++拾趣--STL容器的插入.删除.遍历和查找操作性能对比(ubuntu g++)--插入>已给出.本文将分析从头部.中间和尾部对各个容器进行删除的性能.(转载请指明出 ...
- STL容器存储的内容动态分配情况下的内存管理
主要分两种情况:存储的内容是指针:存储的内容是实际对象. 看以下两段代码, typedef pair<VirObjTYPE, std::list<CheckID>*> VirO ...
- STL容器是否是线程安全的
转载http://blog.csdn.net/zdl1016/article/details/5941330 STL的线程安全. 说一些关于stl容器的线程安全相关的话题. 一般说来,stl对于多线程 ...
- gdb 查看 stl容器 zz
将下面文件作为 ~/.gdbinit的内容, 或者在已有的~/.gdbinit中source下面的文件, 然后可以以下列方式查看stl容器的数据: 容器类型 GDB 命令 std::vector&l ...
- 标准非STL容器 : bitset
1. 概念 什么是"标准非STL容器"?标准非STL容器是指"可以认为它们是容器,但是他们并不满足STL容器的所有要求".前文提到的容器适配器stack.que ...
最新文章
- Guava学习笔记:缘起
- 利用废弃建筑建设数据中心
- 《Python 学习手册4th》 第四章 介绍Python对象类型
- 如何构建Android MVVM 应用框架
- 扫描器scanner的源代码
- angluar cdk_零分钟即可在容器开发套件(CDK)上实现云运营
- ns3 入门案例2:third.cc
- 【powerdesign】从mysql数据库导出到powerdesign,生成数据字典
- 一张图理解JS的原型(prototype、_proto_、constructor的三角关系)
- php xingnengfenxi_php代码性能分析方法
- js获取本地文件夹和文件 .
- ClickHouse在字节跳动推荐和广告业务部门的最佳实践
- 关于“抵制”易语言的通告
- Android学习笔记---常用技巧(图片的旋转)
- 计算机维修工具大全,电脑硬件维修测试工具大全(附送各类PC检修资源)
- 谈宏晶STC单片机的ISP功能 (芯片保密性)转
- 家里两台电脑怎么共享文件_家里有两个电脑~怎么连局域网和文件共享
- 《租车管理系统 ——“订单管理(代驾)”模块》项目研发阶段性总结
- Nginx设置图片防盗链(白名单与黑名单)
- JavaScript下雨效果