社区
C++ 语言
帖子详情
关于容器的问题
秋天的晨阳
2012-10-11 03:43:04
例如vit是指向ivec.begin()的迭代器
那么
vit=ivec.erase(vit);//删除元素
--vit;//指向删除元素的前一元素
我理解的是用erase删除元素后返回的迭代器指向的应该还是ivec.begin()
使用--vit后 ivec.begin()的前一个元素是什么?
...全文
100
7
打赏
收藏
关于容器的问题
例如vit是指向ivec.begin()的迭代器 那么 vit=ivec.erase(vit);//删除元素 --vit;//指向删除元素的前一元素 我理解的是用erase删除元素后返回的迭代器指向的应该还是ivec.begin() 使用--vit后 ivec.begin()的前一个元素是什么?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
漫步者、
2012-10-12
打赏
举报
回复
cout<<"--iter="<<*iter<<endl
你去操作了一个受保护的内存地址
若风09
2012-10-12
打赏
举报
回复
begin()函数返回一个指向当前vector起始元素的迭代器.而erase函数的返回值是指向删除的元素的下一位置的迭代器.也就是说
vit = ivec.begin();
vit=ivec.erase(vit);//删除元素,此时vit是ivec第二个位置的迭代器
--vit;//此处确实越界了,但是我刚才网上查了下好像标准库中,vector本来就没有设计越界检查 ,所以这里没有报错,但是当你 cout的时候就会发现其实找不到这个元素,就报错了 ;应该是这样理解
秋天的晨阳
2012-10-11
打赏
举报
回复
[Quote=引用 4 楼 的回复:]
如果是输入要删除的是第一个时。就会出现错误。
你可以自己设置断点调试一下。
[/Quote]
我试了不会出错除非我将
// cout<<"--iter="<<*iter<<endl;
的//去掉 才会出错
我就是想知道为什么
l0g1n
2012-10-11
打赏
举报
回复
如果是输入要删除的是第一个时。就会出现错误。
你可以自己设置断点调试一下。
l0g1n
2012-10-11
打赏
举报
回复
执行这句后iter=lis.erase(iter);
iter指针所指向的位置是不发生变化的,只是list中后面的数据依次前移。
如序列为
a b c d e f g
当输入删除c后,序列为
a b d e f g
iter指向d。
执行--iter后,iter指向b。
秋天的晨阳
2012-10-11
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
你可以看做数组或者链表,采取删除操作时向首部靠近,begin()的前一个,是越界了嘛。
[/Quote]
#include<iostream>
#include<list>
#include<string>
using namespace std;
int main()
{
//将list对象读入元素
string str;
list<string> lis;
while(cin>>str)
lis.push_back(str);
cin.clear();//将输入流置于有效状态
//输入要查找的值
cout<<"请输入"<<endl;
cin>>str;
//处理list对象,删除与str相同的元素
for(list<string>::iterator iter=lis.begin();
iter!=lis.end();++iter)
{
if(*iter==str)
{
iter=lis.erase(iter);
cout<<*iter<<endl;
--iter;
// cout<<"--iter="<<*iter<<endl;
}
}
return 0;
}
为什么越界了不显示错误啊
漫步者、
2012-10-11
打赏
举报
回复
你可以看做数组或者链表,采取删除操作时向首部靠近,begin()的前一个,是越界了嘛。
boot spring 没有父子
容器
_Spring父子
容器
问题
这个
问题
老早就存在了,只是今天组长让我看AOP不生效的时候,才真实遇到这个
问题
,之前都是用的Spring Boot开发,不会存在这个
问题
。
问题
描述如果使用传统的方式来开发Spring项目,要部署在Tomcat上面,一般会依赖Spring与Spring MVC,在Tomcat的web.xml中会配置一个加载service的配置文件,这个在Tomcat启动的时候会进行加载,会生成一个Spring的
容器
...
docker
容器
迁移
问题
将docker
容器
打包好,迁移到另外的服务器,很方便。对于网站的迁移,不用配置任何多余的环境。那么一般的步骤是什么呢? 之前搞了好久,
容器
迁移之后不能正常运行。 原因是我使用了export/import的形式,
容器
不能正常运行。 正确步骤如下: 1.首先 把
容器
停止运行(docker stop
容器
id) 2.将
容器
转化为镜像( docker
docker
容器
时区不对
问题
默认
容器
为UTC零时区时间, 比中国时间相差8个小时. # 命令: date 可以查看当前时区 # Wed Feb 16 10:28:16 UTC2022 # Wed Feb 16 10:28:16 CST 2022 UTC:世界协调时间,也就是零时区的时间 CST: 中国标准时间,中国是东八区,故比UTC大8小时 有两种方式可以修改
容器
的时区
问题
: 第一种是
容器
还未启动,在启动
容器
时通过挂载的方式可以设置时区与宿主机相同, 第二种是
容器
已经启动后, 找补的方式; 第一种 挂载 .
Web服务器、Web
容器
、Servlet
容器
、Spring
容器
、SpringMVC
容器
一、服务器和
容器
1. Web服务器 2. Web
容器
① Web
容器
的组成 ② Web
容器
的作用 3. Servlet
容器
① Servlet
容器
的作用 ② Servlet
容器
的工作过程 ③ Servlet ④ Servlet的工作过程 ⑤ Servlet变化过程 4. Spring
容器
5. SpringMVC
容器
6. SpringBoot
容器
二、
容器
相关知识归纳 1. 各种
容器
的管理范围 2. 为何设计父子
容器
3. 父子
容器
的事务
问题
三、各种项目中的
容器
1. SpringMVC项目 ① 项目
华纳云:怎么解决docker
容器
一直处于重启状态的
问题
?
如果你能进入
容器
,可以使用 docker exec -it /bin/bash 进入
容器
内部,手动运行
容器
内的启动命令,以便查看详细的错误信息。Docker
容器
一直处于重启状态可能是由于
容器
内部的
问题
导致的。通过这些步骤,你有望找到
容器
一直处于重启状态的原因,并能够采取相应的措施来解决
问题
。如果尝试了以上步骤后
问题
仍然存在,考虑停止并删除
容器
,然后重新构建和运行
容器
。如果
容器
依赖于其他服务,确保这些服务也在运行,并且
容器
能够正确连接到它们。确保你的
容器
启动命令正确,所有的依赖项都已经准备好。
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章