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 允许通过外部访问 ...
随机推荐
- MySQL 高性能优化实战总结
1 前言 2 优化的哲学 3 优化思路 3.1 优化什么 3.2 优化的范围有哪些 3.3 优化维度 4 优化工具有啥? 4.1 数据库层面 4.2 数据库层面问题解决思路 4.3 系统层面 4.4 ...
- spring-boot(七) 随机端口
学习文章:springboot小技巧 随机端口 为Spring Cloud的应用实用随机端口非常简单,主要有两种方法: 设置server.port=0,当应用启动的时候会自动的分配一个随机端口,但是该 ...
- 【golang-GUI开发】QSS的使用(一)———QSS入门指南
在这篇文章中我们将初步体验对qss的使用.并对在goqt中使用qss时的注意事项进行说明. 那么事不宜迟,现在开始我们的qss之旅吧. QSS语法入门 qss是一种与css3相似的控制Qt组件的样式表 ...
- iOS-CoreData详解与使用
上面已经说完了SQLite和FMDB以及两者的区别,本篇将讲述iOS中另一个存储方式,CoreData的使用.通读下来大约10分钟,后续还会根据项目中问题,不断更新. 一.预备知识 在了解CoreDa ...
- 编译部署mysql5.7.13
署环境centos7.2+mysql5.7.131.依赖包注: 相关依赖包的作用cmake:由于从 MySQL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译器, ...
- MyEclipse中jsp编码设置
window->preference->Myeclipse->files and editors->jsp,设置编码为utf-8 2.window->preference ...
- Integer Game(UVA11489)3的倍数
K - Integer Game Time Limit:1000MS Memory Limit:0KB 64bit IO Format:%lld & %llu Submit Status Pr ...
- crontab清理日志
1.日志介绍 2.日志清理 (以下达到清理效果) du -sh * //查看日志大小 * 1 * * * cat /dev/null > /var/log/message 解释/dev/nul ...
- IIS服务器被配置为不列出此目录的内容
使用 IIS 管理器启用目录浏览. 打开 IIS 管理器. 在“功能”视图中,双击“目录浏览”. 在“目录浏览”页上,在“操作”窗格中单击“启用”.
- react-conponent-hellocynthia
<!DOCTYPE html> <html> <head> <script src="../../build/react.js">& ...