问题描述
- 一个关于iterator的简单问题
-
小弟寒假自学C++中,脑洞开了出了两个问题,不说废话了,上代码
第一个#include
#include
#include
#include
using namespace std;
int main()
{
vector name;
name.push_back("zyj");
name.push_back("zsy");
vector::iterator itr=name.end();
printf("%x",itr);
return 0;
}
就是想看看end()最后到底怎么回事,结果printf输出的是这个/********************************/
第二个
代码和上面差不多,就是把容器换了一个#include
#include
#include
#include
using namespace std;
int main()
{
list name;
name.push_back("zyj");
name.push_back("zsy");
list::iterator itr=name.end();
printf("%x",itr);
name.insert(itr,"zzz");
cout << *itr;return 0;
}
itr一开始指向了name的end();
但是我insert 后pt依旧不能用;
而且貌似itr还没变;
难道insert插入不是向原来的队尾添加吗??小弟用的是VS2010的编译器。。。
/////////////////////////////////////
各位神牛求带飞~~~
解决方案
end并不是链表的最后一个元素,它是一个sentinel的作用
vector容器与iterator迭代器
时间: 2024-11-13 06:31:44