在C ++中以字符串形式发布索引的增量

问题描述

此函数将生成所有可能的字符串,这些字符串在给定字符串中具有不同的字符组合,并且对于所生成的字符串,如果它们的长度等于函数参数中指定的长度,则将这些字符串返回一组。 代码1可以正常工作,而代码2具有一行更改,可以在连接后更改字符串内部的索引(后递增),但是此操作会导致不同的输出。我以为的方式是,即使我由于后递增而使用s [i ++]时,梳理字符串也将与s [i]的期望值连接在一起,但是行为是不同的。任何人都可以为这种行为的正确原因提供帮助吗?

code 1:
set<string> generate_comb(string s,int len)
{
    set<string> hold;
    int mask = 1<<s.length();
    for(int no=1;no<mask;no++)
    {
        int num = no;
        int i = 0;
        string comb = "";
        while(num)
        {
            if(num&1)
                comb = comb + s[i];
            num = num>>1;
            i++;
        }
        if(comb.length()==len)
            hold.insert(comb);
    }
    return hold;
}

code 2:
set<string> generate_comb(string s,int len)
{
    set<string> hold;
    int mask = 1<<s.length();
    for(int no=1;no<mask;no++)
    {
        int num = no;
        int i = 0;
        string comb = "";
        while(num)
        {
            if(num&1)
                comb = comb + s[i++]; //this line has been changed 
            num = num>>1;
            //i++;
        }
        if(comb.length()==len)
            hold.insert(comb);
    }
    return hold;
}

解决方法

不同之处在于const App = () => { const [isAuthenticated,setIsAuthenticated] = useState(false); useEffect(() => { const loadUser = async () => { await fetch('http://localhost:5000/api/auth',{ method: 'GET',headers: { 'x-auth-token': localStorage.token,},}); localStorage.setItem('token',localStorage.token); setIsAuthenticated(true); }; loadUser(); },[]); return ( <Router> <div className='d-flex flex-row mb-5'> <Menu /> <div className='d-flex flex-column mt-5 w-100'> <Switch> <Route exact path='/' component={Home} /> <Route exact path='/login' component={SignIn} /> <PrivateRoute exact path='/upload' component={Upload} isAuthenticated={isAuthenticated} /> </Switch> </div> </div> </Router> ); };

if

如果条件为true,则连接字符串,然后执行其余的与条件无关的

if(num&1)
    comb = comb + s[i];
num = num>>1;
i++;

如果条件为true,则串联并递增,但条件为false 不发生增量

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...