#include <iostream>
#include <list>
#include <algorithm>

using namespace std;

template <typename T>
void print(const list<T> &lst)
{
    for (typename list<T>::const_iterator it = lst.begin(); it != lst.end(); ++it)
        cout << *it << ' ';
    cout << endl;
}

int main()
{
    string s = "abcdefg";
    list<char> l(s.begin(), s.end());

    // 删除 cde
    // list<char>::iterator it = find(l.begin(), l.end(), 'c');
    // l.erase(it, find(l.begin(), l.end(), 'e'));

    list<char>::iterator it = l.begin(); // 迭代器指向第一个元素
    for (int i = 0; i < 2; i++)          // 迭代器指向第三个元素
        it++;
    list<char>::iterator it2 = it; // 迭代器指向第三个元素
    for (int i = 0; i < 3; i++)    // 迭代器指向第六个元素
        it2++;
    l.erase(it, it2); // 删除第三个到第五个元素

    print(l); // a b f g

    return 0;
}
