c/c++ 标准顺序容器 容器的访问,删除 操作
c/c++ 标准顺序容器 容器的访问,删除 操作
pop_front:vector,string不支持
pop_back:forward_list不支持
知识点
1,front, back, at 成员函数的使用,对应代码里的test1
2,删除最后一个元素pop_back, 删除第一个元素pop_front,对应代码里的test2
3,删除指定位置的元素erase,并返回下一位置的迭代器 ,对应代码里的test3
#include <vector>
#include <string>
#include <list>
#include <forward_list>
#include <deque>
using namespace std;
int main(){
//test1 顺序容器的front, back(forward_list没有back),at成员函数
//front返回容器里的头元素;back返回容器里的最后一个元素
/*
//在解引用一个迭代器或调用front,back之前要检查容器里是否有元素
deque<int> li{1,2,3,4};
if(!li.empty()){
auto val = *li.begin();
val = 9;//不会改变容器里头元素的值
cout << li.front() << endl;
auto val2 = li.front();
val2 = 8;//不会改变容器里头元素的值
cout << li.front() << endl;
auto& val3 = *li.begin();
val3 = 9;//会改变容器里头元素的值
cout << li.front() << endl;
auto& val4 = li.front();
val4 = 8;//会改变容器里头元素的值
cout << li.front() << endl;
auto val5 = li.end();
//得到容器的最后一个元素
auto last = *(--val5);
cout << last << endl;
auto v = li.at(1);
auto v1 = li[2];
cout << v << " " << v1 << endl;
}
*/
//test2 pop_back, pop_front
//pop_back:删除容器的最后一个元素;pop_front:删除容器的第一个元素
/*
list<int> li{1,2,3,4};
if(!li.empty()){
li.pop_back();
cout << li.back() << endl;
li.pop_front();
cout << li.front() << endl;
}
*/
//test3 erase
//删除指定位置的元素,并放回指向删除元素的下一个元素的迭代器
vector<int> li{0,1,2,3,4,5,6,7,8};
//删除奇数
auto b = li.begin();
while(b != li.end()){
if(*b % 2){
b = li.erase(b);
}
else{
++b;
}
}
for(auto const &s : li){
cout << s << " ";
}
cout << endl;
auto it = li.begin();
li.erase(it, it + 2);
for(auto const &s : li){
cout << s << " ";
}
cout << endl;
}
c/c++ 学习互助QQ群:877684253
本人微信:xiaoshitou5854
c/c++ 标准顺序容器 容器的访问,删除 操作的更多相关文章
- Docker容器/镜像查看及删除操作
列出所有正在运行的容器 docker ps 暂停容器 docker stop <name> 删除容器 docker rm <name> 停止所有container docker ...
- c/c++ 标准顺序容器 之 push_back,push_front,insert,emplace 操作
c/c++ 标准顺序容器 之 push_back,push_front,insert,emplace 操作 关键概念:向容器添加元素时,添加的是元素的拷贝,而不是对象本身.随后对容器中元素的任何改变都 ...
- C++顺序性容器、关联性容器与容器适配器
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...
- C++ 容器:顺序性容器、关联式容器和容器适配器
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...
- stl中顺序性容器,关联容器两者粗略解释
什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其它对象或指向其它对像的指针,这种对象类型就叫做容器.很简单,容器就是保存其它对象的对象 ...
- 把《c++ primer》读薄(3-2 标准库vector容器+迭代器初探)
督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. 标准库vector类型初探,同一种类型的对象的集合(类似数组),是一个类模版而不是数据类型,学名容器,负责管理 和 存储的元素 ...
- docker从容器中怎么访问宿主机
docker从容器中怎么访问宿主机 我来答 浏览 3160 次 2个回答 #热议# 2019年全国两会召开,哪些提案和政策值得关注? 好程序员 知道合伙人 推荐于2017-11-22 dock ...
- 解决Windows10下无法对docker容器进行端口访问(端口映射的问题)
解决Windows10下无法对docker容器进行端口访问(端口映射的问题) 问题详情 在Windows10系统服务器中安装了docker和docker-compose 并尝试在其中运行Nginx服务 ...
- Docker 中的网络功能介绍 外部访问容器 容器互联 配置 DNS
Docker 中的网络功能介绍 | Docker 从入门到实践 https://vuepress.mirror.docker-practice.com/network/ Docker 允许通过外部访问 ...
随机推荐
- 五分钟轻松了解Hbase面向列的存储
说明:从严格的列式存储的定义来看,Hbase并不属于列式存储,有人称它为面向列的存储,请各位看官注意这一点. 行式存储 传统的数据库是关系型的,且是按行来存储的.如下图: 其中只有张三把一行数据填满了 ...
- SpringBoot快速引入第三方jar包
工作中,我们常会用到第三方jar包,而这些jar包往往在maven仓库是搜不到的,下面推荐一种简单.快速的引入第三方依赖的方法: 比如第三方jar包在lib文件夹下,对pom.xml的配置如下: &l ...
- vue_drf之实现极验滑动验证码
一.需求 1,场景 我们在很多登录和注册场景里,为了避免某些恶意攻击程序,我们会添加一些验证码,也就是行为验证,让我们相信现在是一个人在交互,而不是一段爬虫程序.现在市面上用的比较多的,比较流行的是极 ...
- 数据可视化 seaborn绘图(2)
统计关系可视化 最常用的关系可视化的函数是relplot seaborn.relplot(x=None, y=None, hue=None, size=None, style=None, data=N ...
- Keras入门(二)模型的保存、读取及加载
本文将会介绍如何利用Keras来实现模型的保存.读取以及加载. 本文使用的模型为解决IRIS数据集的多分类问题而设计的深度神经网络(DNN)模型,模型的结构示意图如下: 具体的模型参数可以参考文章 ...
- Win10一周年纪念版,瞧一瞧Linux子系统
Bash Bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令.Bash还能从文件中读取命令,这样的文件称为脚本.和其他Unix shell 一样,它支持文件名替换(通配符匹配) ...
- 分页Sql语句
第一种 Top剔除法.去除Top (pageIndex-1)*PageSize * FROM dbo.SBD_EXCHANGE_BILL ) EB_ID FROM dbo.SBD_EXCHANGE_B ...
- [android] 显示意图激活另外一个activity
可以使用跳转的方式类似javaweb来实现界面转换 显示意图就是必须要指定开启组件的具体信息,包名,组件名,组件的class 新建一个类TwoActivity ,继承Activity类,重写onCre ...
- JVM运行时数据区内容简述
JVM运行时数据区分为五个部分:程序计数器.虚拟机栈.本地方法栈.堆.方法区.如下图所示,五部分其中又分为线程共享区域和线程私有区域,下面将分别介绍每一部分. 1. PC程序计数器 程序计数器是一块较 ...
- Hibernate入门(十一)多对多案例
Hibernate多对多案例 1.用户对角色 DROP TABLE IF EXISTS emp_role; DROP TABLE IF EXISTS employee; DROP TABLE IF E ...