我有这个c ++代码可以正常删除列表的最后3个元素,但我想知道这是否是正确的方法来做这样的事情,因为我担心删除迭代器问题的元素.代码基本上采用6个元素"Groups"的列表,将其分为2个较小的列表"Group1"和"Group2",然后将不同的List"GroupToCompare"与"Group2"进行比较,如果它们相等,则删除最后一个"团体"的3个要素.
#include "pch.h"
#include <iostream>
#include <iostream>
#include <string>
#include <list>
using namespace std;
int main()
{
std::list <string> Groups = {};
Groups = { "Spike", "Jet", "Faye", "Edward", "Vincent", "Elektra" };
std::list<string> Group1 = {};
std::list<string> Group2 = {};
std::list<string> GroupToCompare = {};
GroupToCompare = { "Edward", "Vincent", "Elektra" };
size_t half1 = Groups.size() / 2;
std::list<std::string>::iterator ig = Groups.begin();
advance(ig, half1);
Group1.insert(Group1.end(), Groups.begin(), ig);
Group2.insert(Group2.end(), ig, Groups.end());
std::list<std::string>::iterator removeIt = Groups.begin();
advance(removeIt, half1);
cout << "List Elements …Run Code Online (Sandbox Code Playgroud)