比如输入一个整数9后: 使得容器中存储: 1 2 3 4 5 6 7 8 9 然后将其重排成: 1 3 5 7 9 8 6
main.c部分
#include <iostream>
#include <list> // 链表
using namespace std;
void show(list<int> numbers)
{
// for(int k : numbers)
// cout << k << '\t';
// cout << endl;
for(list<int>::iterator it=numbers.begin();
it!=numbers.end(); it++)
cout << *it << '\t';
cout << endl;
}
int main()
{
list<int> numbers;
int n;
cin >> n;
for(int i=1; i<=n; i++)
numbers.push_back(i);
show(numbers);
for(list<int>::reverse_iterator rit = numbers.rbegin(); //奇偶数重排
rit != numbers.rend(); rit++)
{
if(*rit%2 == 0) //对偶数进行操作,奇数不动
{
int tmp = *rit;
numbers.remove(tmp);
numbers.push_back(tmp);
}
}
show(numbers);
return 0;
}
运行结果: