#ifndef LIST_H
#define LIST_H
#include <list>
class listStruct
{
public:
listStruct();
void myRemove();
void listIterErase();
void listIterEraseA();
void listIterEraseB();
void myListEraseAndPush();
void myListEraseAndPushA();
private:
std::list<int> myList = {1,2,3,4,5};
};
#endif
#include "listStruct.h"
#include "algorithm"
#include <iostream>
listStruct::listStruct()
{}
void listStruct::myRemove()
{
myList.remove(2);
}
void listStruct::listIterErase()
{
for(auto it = myList.begin(); it != myList.end();)
{
if(*it == 3)
{
it = myList.erase(it);
}
else
{
++it;
}
}
}
void listStruct::listIterEraseA()
{
for(auto it = myList.begin(); it != myList.end(); it++)
{
if(*it == 3)
{
myList.erase(it);
}
}
}
void listStruct::listIterEraseB()
{
for(auto it = myList.begin(); it != myList.end(); it++)
{
if(*it == 3)
{
myList.erase(it);
break;
}
}
}
void listStruct::myListEraseAndPush()
{
for(auto it = myList.begin(); it != myList.end(); it++)
{
if(*it == 3)
{
myList.erase(it);
myList.push_back(6);
}
}
}
void listStruct::myListEraseAndPushA()
{
for(auto it = myList.begin(); it != myList.end(); it++)
{
if(*it == 3)
{
auto nextIt = myList.erase(it);
myList.insert(nextIt, 6);
}
}
}