c++遍历整个列表
c++ iterating through whole list
我有一个函数,它接受一个列表,例如{10,14,2,4,8}然后,我遍历整个列表,在进行操作时,我将其除以除数,然后再除以%2。循环应继续运行,直到除数大于列表中的最大数。样本输出为:;
10=0
14=0
2=0
4=0
8=0
然后除数乘以2并产生。
10=1
14=1
...
我只得到了第一部分,然后它停止了。我知道我的逻辑有些地方错了。
void Splice(std::list<int> list_Original)
{
int largest_number_in_list=getMax(list_Original);
int divisor=1;
std::list<int> new_list;
for(std::list<int>::iterator i=list_Original.begin();i != list_Original.end();i++)
{
if(divisor<largest_number_in_list)
{
int n=((*i/divisor)%2);
std::cout<<*i<<"="<<n<<std::endl;
//new_list.push_back(n);
divisor=2*divisor;
//std::cout<<"hihh";
}
for(std::list<int>::iterator i=new_list.begin();i!=new_list.end();i++)
{
std::cout<<*i<<std::endl;
}
}
}
忽略您对"新列表"所做的任何操作,即for
循环在列表上迭代一次后退出。在每次迭代过程中,您还将除数加倍。您希望divisor
和最大数字之间的检查围绕for
循环,因此使用while
。
while (divisor < largest_number_in_list)
{
for(std::list<int>::iterator i=list_Original.begin();i !=list_Original.end();i++)
{
int n=((*i/divisor)%2);
std::cout<<*i<<"="<<n<<std::endl;
}
divisor=2*divisor;
}
相关文章:
- C++声明双链表,使用两个 for 循环双向遍历列表并打印
- 是否有任何优雅的方式来遍历元素位置可以更改的列表?
- 遍历列表包含排除最后一个元素的内容
- 自定义链表const_iterator无法遍历列表的非const实例
- Node中的子节点列表在C++中的BFS遍历过程中丢失
- 迭代是否遍历整个列表
- 遍历自定义列表
- 使用引用遍历链接列表不起作用
- 如果使用迭代器,如何解决遍历列表的问题
- c++列表遍历和初始化
- 如何在 c++ 列表中遍历固定数量的元素
- 在c++中遍历一个列表并在另一个列表中搜索每个元素
- 如何在链表中遍历后得到列表的头
- 遍历指向错误元素的列表
- 遍历矢量 c++ 中的列表
- 如何遍历非默认构造类的提升 MPL 列表
- 当此列表包含父列表时,如何遍历列表,它使用标准列表
- 遍历标准:列表<wstring>
- 遍历链接列表时出现分段错误
- JSONcpp遍历对象中的列表