小编nik*_*par的帖子

在c ++()或{}中委托构造函数

我用以下代码阅读了Stroustrup的这个链接:

class X {
        int a;
    public:
        X(int x) { if (0<x && x<=max) a=x; else throw bad_X(x); }
        X() :X{42} { }
        X(string s) :X{lexical_cast<int>(s)} { }
        // ...
    };
Run Code Online (Sandbox Code Playgroud)

我的问题是关于这条线:

X() X{42}{}

括号和大括号之间有什么区别吗?
如果没有差异,我可以在其他函数调用中使用大括号吗?或者只是在构造函数委托中?最后为什么我们应该有这两种语法?这有点暧昧.

c++ constructor delegation c++11

15
推荐指数
2
解决办法
1万
查看次数

理解:`+`(1,`*`(2,3))以及如何更好地编码它

这段代码是什么:`+`(1, `*`(2, 3))应该在R中做什么?可以用更典型的方式编码吗?怎么样?

r

13
推荐指数
4
解决办法
1838
查看次数

如何只选择正值?

我有一个包含正值,负值和NA值的数据集.如何使用脚本选择仅正值?我还想用负数替换负数,NA并保留NA值.

r

8
推荐指数
2
解决办法
2万
查看次数

全局变量与ARM C中main中声明的变量之间的差异

我一直在试图用CKeil写我的一些测试代码TM4C123G,它使用的ARM微控制器.我不知道ARM assembly,但我已经为AVR microcontroller过去编写了一些汇编代码.

存储变量的值在哪里,如果我们在C中声明一个变量global,而不是声明它main

关于是否应该声明一个变量global而不是main(在为微控制器编写C时)是否有一般指导原则?

c microcontroller arm global keil

5
推荐指数
1
解决办法
3031
查看次数

wait(NULL) 究竟是如何工作的?

如果我使用wait(null),并且我知道(肯定)子wait(null)进程会在我们到达父进程之前完成(退出),那么父进程是否会wait(null)阻塞?我的意思是,wait()不会得到任何信号吧?

int main() {
   int pipe_descs[2] ;
   int i, n, p ;

   srand(time(NULL(  ;
   pipe(pipe_descs) ;

   for (i = 0; i < 2; i++) {
           pid_t status = fork() ;

           if (status == 0) {
                 n = rand() % 100;
                 p = (int) getpid() ;

                 write(pipe_descs[1],  &n,  sizeof(int)) ;
                 write(pipe_descs[1],  &p,  sizeof(int)) ;
                 exit(0) ;
            }
           else {
               read(pipe_descs[0],  &n,  sizeof(int)) ;
               read(pipe_descs[0],  &p,  sizeof(int)) ;
               printf(" %d %d\n", n, p) ; …
Run Code Online (Sandbox Code Playgroud)

c fork wait

5
推荐指数
1
解决办法
3万
查看次数

在 R 中将数字格式转换为 YYYY 日期

我有一个从 CSV 文件导入的数据集,其中“年份”列从 2001 年开始一直到 2013 年。

然而,列类是“整数”。

> class(Year)
[1] "integer"
Run Code Online (Sandbox Code Playgroud)

我已经查看了有关如何进行此更改的各种解决方案和帖子,但解决方案似乎适用于某些版本的//YYYY-mm-dd或转换类似的内容dd-mm-yyymm-dd-yyyy20150521为日期。

这些是我迄今为止尝试过的一些命令,但没有成功。

Year <- as.Date(Year, "%Y")
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

as.Date(Year)
Error in as.Date.numeric(Year) : 'origin' must be supplied

as.Date(Year, Year[1])
Error in as.Date.numeric(origin, ...) : 'origin' must be supplied

as.Date(Year, "2001")
Error in charToDate(x) : 
  character string is not in a standard unambiguous format

as.Date(Year, 2001)
Error in as.Date.numeric(origin, ...) : 'origin' …
Run Code Online (Sandbox Code Playgroud)

r date lubridate

3
推荐指数
1
解决办法
8390
查看次数

如何使用data.table跨多个列(loci)按组有效地计算等位基因频率(比例)

我有一个data.table的等位基因身份(行是个体,列是基因座),由一个单独的列分组.我想按组计算每个基因座的等位基因频率(比例).示例数据表:

    DT = data.table(Loc1=rep(c("G","T"),each=5), 
      Loc2=c("C","A"), Loc3=c("C","G","G","G",
      "C","G","G","G","G","G"), 
    Group=c(rep("G1",3),rep("G2",4),rep("G3",3)))
    for(i in 1:3)
        set(DT, sample(10,2), i, NA)
    > DT
        Loc1 Loc2 Loc3 Group
     1:    G   NA    C    G1
     2:    G    A    G    G1
     3:    G    C    G    G1
     4:   NA   NA   NA    G2
     5:    G    C   NA    G2
     6:    T    A    G    G2
     7:    T    C    G    G2
     8:    T    A    G    G3
     9:    T    C    G    G3
    10:   NA    A    G    G3
Run Code Online (Sandbox Code Playgroud)

我的问题是,当我尝试按组进行计算时,只有组中存在的等位基因ID被识别,所以我很难找到可以告诉我例如所有3组中基因座1的G的比例的代码.举个简单的例子,计算每个基因座上第一个等位基因的总和(不是比例):

    > fun1<- function(x){sum(na.omit(x==unique(na.omit(x))[1]))}
    > DT[,lapply(.SD,fun1),by=Group,.SDcols=1:3]
       Group Loc1 Loc2 …
Run Code Online (Sandbox Code Playgroud)

r data.table

3
推荐指数
1
解决办法
999
查看次数

在MATLAB中绘制点时的问题

当我试图在MATLAB中将两组点绘制成图表时,我遇到了一些问题.我创建了两个矩阵,分别代表组,一组圆圈和另一组十字架.结果应如下图所示:

在此输入图像描述 创建这两个组的代码是这样的:

circles = [1 1; 2 1; 2 2; 2 3; 2 4; 3 2; 3 3; 4 1; 4 2; 4 3];
crosses = [1 2; 1 3; 1 4; 2 5; 3 4; 3 5; 4 4; 5 1; 5 2; 5 3];

plot(circles, 'ro');
hold on
plot(crosses, 'b+');
hold off;
axis([0,6,0,6]);
Run Code Online (Sandbox Code Playgroud)

但是这段代码绘制了一张凌乱的图表,类似于下图:

在此输入图像描述

情节可能有什么问题?

matlab

3
推荐指数
1
解决办法
69
查看次数

在MATLAB中重塑矢量

我试图在MATLAB中使用单个for循环实现BlockLMS.为此,给定一个向量u,我试图创建一个表格的表格

U = [u(k)     u(k+1)     u(k+2)  ...    u(k+n)
     u(k-1)   u(k)       ...     ...    u(k+n-1)
     ...      ...        ...     ...    ...
     u(k-n)   u(k-n+1)   ...     ...    u(k)]
Run Code Online (Sandbox Code Playgroud)

其中n是常数,k是随每个for循环而变化的变量,假设k > n始终如此.到目前为止我所取得的成就是:

index = meshgrid(0:-1:1-n)' + meshgrid(1:n);
for i = 2:q
    % calculate k
    U = u(k + index);
    % rest of code goes here
end
Run Code Online (Sandbox Code Playgroud)

尽管它有效,但遗憾的是很慢,并不适合我的需要.有没有更有效的方法来实现这一结果?

performance matlab

3
推荐指数
1
解决办法
104
查看次数

对于x在1到1000的x和y在1-1000中使用R有多少独特的幂

使用R,计算x和y是整数∈[1,1000],存在多少个唯一幂,x ^ y.这就是我现在所拥有的,只是不知道如何消除重复的数字,

x<-1:1000
y<-1:1000
for (i in x)
{
    for (j in y){
       print(i^j)
    }
}
Run Code Online (Sandbox Code Playgroud)

r

2
推荐指数
2
解决办法
437
查看次数

我试过在教程的setFlags中使用这个Flag,但是不推荐使用它,我该怎么做

FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET已弃用; 那我该怎么用?

private Intent createShareForecastIntent() {

    Intent shareIntent = new Intent(Intent.ACTION_SEND);
    shareIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
    shareIntent.setType("text/plain");
    shareIntent.putExtra(Intent.EXTRA_TEXT, mforecastStr + FORECAST_SHARE_HASHTAG);
    return shareIntent;


}
Run Code Online (Sandbox Code Playgroud)

android android-intent android-developer-api

1
推荐指数
1
解决办法
1627
查看次数

时间复杂度为 O(2m+n) 和 O(kn)

例如,假设有一个函数迭代大小为 m 的数组两次和大小为 n 的数组迭代一次

func(){
   for(i = 0; i < m; i++){//do something}
   for(i = 0; i < n; i++){//do something}
   for(i = 0; i < m; i++){//do something}
}
Run Code Online (Sandbox Code Playgroud)

因为 O(2m) = O(m),所以将其时间复杂度写为 O(2m+n) = O(m+n) 是否正确?

对于另一个问题,如果我有一个迭代大小为 n, k 次的数组的函数,其中 k 是在调用该函数之前根据输入计算的。

func(int k){
    for(int i = 0; i < k; i++){
        for(int j = 0; j < n; j++){}
    }
}
Run Code Online (Sandbox Code Playgroud)

和第一个问题一样,可以说它的时间复杂度是 O(k*n) = O(n) 吗?

c++ performance time-complexity

1
推荐指数
1
解决办法
1163
查看次数

如何存储ceil()在变量中返回的内容(C编程)

所以我已经搜索了一下这个问题的答案,这可能非常简单,但我还没有找到任何东西,所以这里有一个问题:像这样的代码在这里工作得很好:

int main(void){
    double x;
    x=ceil(5.5);
}
Run Code Online (Sandbox Code Playgroud)

但如果我试试这个:

int main(void){
    double x = 5.5;
    x=ceil(x);
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误消息:

test.c :(.text + 0x24):未定义的引用`ceil'

为什么这个以及如何将变量发送到'ceil()'函数然后将其存储在另一个变量中?

c

0
推荐指数
1
解决办法
95
查看次数