qfedu-cpp-level/day10/stl_list_demo/d2.cpp

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;
}