打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
vector执行erase后迭代器的位置

#include <iostream>
using namespace std;

#include <vector>
#include <string>

typedef unsigned short WORD;

void main()
{
 vector<string> vStr;

 vStr.push_back("1");
 vStr.push_back("2");
 vStr.push_back("3");
 vStr.push_back("4");
 vStr.push_back("5");

 vector<string>::iterator it = vStr.begin();
    it++;

 cout << *it << endl; // 输出2,这个没问题

 cout << "------------------------\n";
 vStr.erase(it++); // 这里用it++和++it对最后显示的元素来说效果是一样的,不过删除的元素不一样
 vector<string>::iterator iter = vStr.begin();
 for (iter; iter != vStr.end(); iter++)
 {
  cout << *iter << endl;
 }
 
 cout << "-------------------------\n";
 cout << *it << endl; // 输入4,而不是3,即erase删除的是迭代器指向的当前元素时,迭代器指向下一个位置

 system("pause");
}

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
STL vector用法
C/C++拾遗(十一):顺序容器
C++中Vector的erase(详细解释)删除操作
STL介绍
《白话C++》第三章《感受》(一)3.13.Hello STL 列表篇
Vector<vector<int>> array用法(转载)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服