36 lines
898 B
C++
36 lines
898 B
C++
|
#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;
|
||
|
}
|