小编Had*_* A.的帖子

删除list c ++中的最后3个元素

我有这个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)

c++ stl

0
推荐指数
1
解决办法
135
查看次数

标签 统计

c++ ×1

stl ×1