template<class T>
void joseph(list<T>& a, list<T>& b, int jumNum)
void joseph(list<T>& a, list<T>& b, int jumNum)
{
list<T>::iterator iter=a.begin();
while(!a.empty())
list<T>::iterator iter=a.begin();
while(!a.empty())
{
for(int i=0;i<jumNum;i++)
for(int i=0;i<jumNum;i++)
{
iter++;
if(iter==a.end())
iter=a.begin();
}
iter++;
if(iter==a.end())
iter=a.begin();
}
b.push_back(*iter);
iter = a.erase(iter);
if(iter==a.end())
iter=a.begin();
}
}
iter = a.erase(iter);
if(iter==a.end())
iter=a.begin();
}
}
本文介绍了一种基于C++模板实现的约瑟夫环问题解决方案。通过使用STL中的list容器,实现了两个列表之间的元素传递操作。此算法遵循约瑟夫环的经典规则,即按指定步数移除元素直至原列表为空。
626

被折叠的 条评论
为什么被折叠?



