|
发表于 2022-5-9 19:30:22
|
显示全部楼层
本楼为最佳答案
- #include <iostream>
- #include <stack>
- #include <list>
- using std::stack, std::list;
- using std::cout, std::endl;
- using std::ostream;
- template<typename T>
- list<T> reverse(const list<T> &l) {
- stack<T> s;
- for(const auto &i: l) s.push(i);
- list<T> result;
- while(!s.empty()) {
- result.push_back(s.top());
- s.pop();
- }
- return result;
- }
- template<typename T>
- ostream &operator<<(ostream &os, const list<T> &rhs) {
- for(const auto &i: rhs) os << i << " ";
- return os;
- }
- int main() {
- {
- list<int> la = {1, 2, 3, 4};
- list<int> lb = reverse(la);
- cout << lb << endl;
- }
- {
- list<double> la = {11.23, 2.56, 3.98, 4.73};
- list<double> lb = reverse(la);
- cout << lb << endl;
- }
- return 0;
- }
复制代码 |
|