void gen(string& str, int index)
{
int i;
if(str.length() == index)
{
cout << str << endl;
return;
}
else
{
for(i=index; str[i]!='\0' && str[i]!='?';i++);
if(str[i] == '?')
{
str[i] ='0';
gen(str,i+1);
str[i] ='1';
gen(str,i+1);
}
}
return;
}
int main()
{
string s ="0??";
gen(s, 0);
return 0;
}
谁能给我解释一下....
引用将维护在函数调用中更改的值
after set str[1] ='0';
sub call: gen(str,2); will output combination: 000 001
reset str[1] ='1';
str is still 011
gen(str,i+1); output nothing
希望这段代码能有所帮助
#include <string>
#include <iostream>
#include <stdio.h>
using namespace std;
void gen(string& str, int index)
{
int i;
if(str.length() == index)
{
cout << str << endl;
return;
}
else
{
for(i=index; str[i]!='\0' && str[i]!='?';i++);
if(str[i] == '?')
{
printf("before set pos %d to 0: %s\n",i,str.c_str());
str[i] ='0';
printf("after set pos %d to 0: %s\n",i,str.c_str());
gen(str,i+1);
printf("before set pos %d to 1: %s\n",i,str.c_str());
str[i] ='1';
printf("after set pos %d to 1: %s\n",i,str.c_str());
gen(str,i+1);
}
}
return;
}
int main()
{
string s ="0??";
gen(s, 0);
return 0;
}
它输出:
我目前正在尝试将我的Firebase数据库中的内容读入中,但我希望将它们从最后一个节点加载到第一个节点。所以我决定将键放入一个数组中,然后尝试从数组的末尾读到前面,但是当我尝试访问键数组时,我看到的是中的参数'path string'传递null错误。
我做了与本文相同的测试:new String()vs literal String performance 谢谢你!
问题内容: 为了不重复我的自我,我想创建一个函数来处理一些命令。 一旦我尝试运行它,我得到以下错误: 我研究了的实现,并且看起来函数签名正是我提供的。 在内部a 应该与可变参数相同,但对于编译器来说似乎不一样。 有没有办法将可变参数传递给? 问题答案: 您用另一个扩展 从语言规范的传递参数…参数 如果最终参数可分配给切片类型,则在参数后跟时可以将其作为参数的值原样传递。在这种情况下,不会创建新的切
我的结构数据库数据库结构 这是我的用户类
问题内容: public class StackOverFlow { public static void main(String[] args) { ArrayList al = new ArrayList (); al.add(“A”); al.add(“B”); markAsNull(al); System.out.println(“ArrayList elements are “+al);
http://javapapers.com/core-java/address-of-a-java-object/ 但地址好像不一样。我错过了什么?