| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 742 人关注过本帖
标题:i != boost::dynamic_bitset<>::npos; 这行代码是什么意思?
只看楼主 加入收藏
a111234567
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2023-7-20
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:4 
i != boost::dynamic_bitset<>::npos; 这行代码是什么意思?
void StudyWidgets::GetPrime(int num)
{
    boost::dynamic_bitset<> db(num);//0000000000
    db.set();//1111111111
 
    for (auto i = db.find_next(1); i != boost::dynamic_bitset<>::npos; i = db.find_next(i))
    {
        for (auto j = db.find_next(i); j != boost::dynamic_bitset<>::npos; j = db.find_next(j))
        {
            if (j%i == 0)
            {
                db[j] = 0;
            }
        }
        //索引:  9 8 7 6 5 4 3 2 1 0   
        //i = 2时:1 0 1 0 1 0 1 1 1 1
        //i = 3时:0 0 1 0 1 0 1 1 1 1
        //i = 5时:0 0 1 0 1 0 1 1 1 1
        //i = 7时:0 0 1 0 1 0 1 1 1 1
        std::cout << std::endl << "i=" << i << "时:";
        for (size_t m = db.size() - 1; m >= 0 && m < db.size(); m--)//注意条件,因为当m=0时,m--后 m=18446744073709551615
        {
            std::cout << db[m] << " ";
        }
    }
    std::cout << std::endl;
    //0010101111
    for (auto i = db.find_next(1); i != boost::dynamic_bitset<>::npos; i = db.find_next(i))
    {
        std::cout << i;   //2 3 5 7
    }
}
搜索更多相关主题的帖子: auto for cout std db 
2023-07-26 17:38
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:4 
筛选法求素数
把2的倍数(不包含2)全去掉
把3的倍数(不包含3)全去掉
把5的倍数(不包含5)全去掉
……
2023-07-26 21:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:3 
m >= 0 挺那啥的,无符号整数必然大于等于零

boost::dynamic_bitset 没必要,std::vector<bool> 就是按 1bit 操作的
2023-07-26 21:24
a111234567
Rank: 1
等 级:新手上路
帖 子:19
专家分:0
注 册:2023-7-20
收藏
得分:0 
npos是什么
2023-07-26 21:37
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9008
专家分:53957
注 册:2011-1-18
收藏
得分:3 
以下是引用a111234567在2023-7-26 21:37:54的发言:

npos是什么

表示“没找到”
2023-07-27 07:30
快速回复:i != boost::dynamic_bitset<>::npos; 这行代码是什么意思?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012809 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved