64,680
社区成员
发帖
与我相关
我的任务
分享
#include<iostream>
#include<list>
using namespace std;
template<typename T>
void split(/*const*/list<T>& aList, list<T>& list1, list<T>& list2)
{
typename list<T>::iterator iter=aList.begin();
while(iter!=aList.end())
{
int i=1;
if(i%2==1)
list1.push_back(*iter);
else
list2.push_back(*iter);
aList.erase(iter++); //要修改不能用const
i++;
}
}
void main()
{
int arr[]={1,2,3,4,5,6};
int arrsize=sizeof(arr)/sizeof(int);
/*const*/ list<int>aList(arr,arr+arrsize);
list<int>list1;
list<int>list2;
split(aList,list1,list2);
list<int>::iterator iter1=list1.begin();
list<int>::iterator iter2=list2.begin();
while(iter1!=list1.end())
{
cout<<*iter1<<endl;
list1.erase(iter1++);
}
while(iter2!=list2.end())
{
cout<<*iter2<<endl;
list2.erase(iter2++);
}
}