37 lines
875 B
C++
37 lines
875 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";
|
||
|
|
||
|
// 将 string 字符串转换为 list
|
||
|
list<char> l(s.begin(), s.end());
|
||
|
int size = l.size(); // 获取大小
|
||
|
print(l);
|
||
|
|
||
|
// list 手写逆序
|
||
|
list<char>::iterator it = l.begin(); // 迭代器指向第一个元素
|
||
|
for (int i = 0; i < size; i++) // 逆序 size 次
|
||
|
{
|
||
|
it = l.insert(it, l.back()); // 将最后一个元素插入到第一个元素之前
|
||
|
it++; // 迭代器指向下一个元素
|
||
|
l.pop_back(); // 删除最后一个元素
|
||
|
}
|
||
|
|
||
|
print(l);
|
||
|
|
||
|
return 0;
|
||
|
}
|