是这样,主管给了我一个编程题,向list容器中插入1 8 6 7 9 ,五个元素,同时删除第三四位,最后便遍历容器,我实现了代码如下
:
#include "stdafx.h"
#include<iostream>
#include<list>
int main()
{
std::list<int>vInt; //创建一个类型为int的容器list
vInt.push_back(1); //从尾部插入元素1
vInt.push_back(8); //从尾部插入元素8
vInt.push_back(6); //从尾部插入元素6
vInt.push_back(7); //从尾部插入元素7
vInt.push_back(9); //从尾部插入元素9
//遍历输出
for (std::list<int>::iterator iter = vInt.begin(); iter != vInt.end(); iter++)
std::cout << *iter << std::endl;
std::cout << "擦除进行中" << std::endl;
//开始进行擦除步骤
for (std::list<int>::iterator iter = vInt.begin(); iter != vInt.end(); )
{
if (*iter==6||*iter==7)
{
vInt.erase(iter++); //坑,当擦除时,iterator会失效
}
else
{
iter++;
}
}
//容器遍历输出
for (std::list<int>::iterator iter = vInt.begin(); iter != vInt.end(); iter++)
std::cout << *iter << std::endl;
return 0;
}
擦出他说不能知道容器的值,我想问下我该怎么办,我想过用类似数组下标找到第三位和第四位,可是不行,请各位大神帮帮忙,谢谢啦,我刚才找到用advance(),能成功可是主管肯定会说不行,因为我基础太差,所以到底该怎么实现呢,求各位帮帮忙,谢谢~
