我正在用C++编写一个小编程练习.目标是启动一个前32个指数为2的数组,然后输出它们.使用普通for循环没有问题,但我尝试使用C++ 11标准中引入的基于范围的for循环.在编译期间,我收到警告"基于范围的循环是一个C++ 11扩展[-Wc ++ 11-extensions]".运行程序我得到错误"Segmentation fault:11"而没有任何进一步的输出.
我已经知道elem变量以某种方式被破坏但我不知道如何.希望你能帮助一个n00b :)
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
const int LAENGE = 32;
long potenzen[LAENGE];
for(int elem : potenzen)
{
potenzen[elem] = pow(2.0, (double) (elem + 1));
}
for(int elem : potenzen)
{
cout << endl;
cout << potenzen[elem];
}
cout << endl;
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我在函数中索引我的snakemake通配符时遇到问题.由于某种原因,变量在"通配符"列表中的存储顺序各不相同.我使用该函数为我的一个规则生成输入文件的路径,并且随着正确值的位置发生变化,规则每次查询只会成功一次.如何在"通配符"列表中控制或修复通配符的位置?我添加了我的Snakefile的相关内容.
谢谢你,zuup
#!/usr/bin/env python3
import glob
import re
R_BIN = "Rscript"
pop = "lineA lineB".split()
group = "test control".split()
chrom = "X Y".split()
def getInput(Wildcards):
pop = str(Wildcards[0])
group = str(Wildcards[1])
chrom = str(Wildcards[2])
path = "Resources/bed/" + pop + "_" + group + r"_rep[1-5]/" + pop + "_" + group + r"_rep[1-5]_chr" + chrom + ".bed"
return(glob.glob(path))
rule BED2BS:
input:
getInput
output:
wd + "Resources/bs/{pop}_{group}/{group}_chr{chrom}.RDS"
shell:
R_BIN + " Scripts/Script1.R {input} {output}"
Run Code Online (Sandbox Code Playgroud)