小编Kon*_*lph的帖子

如何在构造函数中初始化类的成员数组?

我正在尝试执行以下操作:

class sig
{
public:

int p_list[4];
}

sig :: sig()
{
p_list[4] = {A, B, C, D};
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

缺少构造函数中的表达式.

那么我如何初始化一个数组呢?

c++

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

如何将值与给定的对齐方式对齐

我有一个值,我想要对齐给定的对齐,即如果尚未对齐,则将值增加到对齐的下一个倍数.

在C++中执行此操作的简洁方法是什么?

例如

int x;
int alignment;
int y = ???; // align x to alignment
Run Code Online (Sandbox Code Playgroud)

c++ math

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

为什么"hello"> 0返回TRUE?

试试吧:

"hello" > 0
Run Code Online (Sandbox Code Playgroud)

我尝试过使用,as.numeric("hello")但它只是让我回来了NA.是什么赋予了?

r

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

解析数据的正则表达式

我正在编写一个从简单文本文件中读取一些数据的应用程序.我感兴趣的数据文件包含以下形式的行:

Mem(100) = 120
Mem(200) = 231
Mem(43) = 12
...
Mem(1293) = 12.54
Run Code Online (Sandbox Code Playgroud)

所以,你可以理解,每一行的模式都是这样的

(\s)*(\t)*Mem([0-9]*) (\s,\t)*= (\s,\t)*[0-9]*(.)*[0-9]*
Run Code Online (Sandbox Code Playgroud)

就像我在字符序列"Mem"之前有任意数量的空格,后跟左括号.然后,有一个数字和一个右括号.之后,在遇到'='(等于)字符之前,有任意数量的空格.然后,任意数量的空格,直到我遇到(可能)浮点数.

如何在C++正则表达式模式中表达它?我是C++中正则表达式概念的新手,所以我需要一些帮助.

谢谢

c++ regex

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

无形地返回结果

我试图NULL通过Rcpp从C++函数中无形地返回一个结果(事实上).不幸的是我无法找到如何做到这一点.我的第一次尝试是设置,R_Visible但不再导出此全局变量; 接下来,我尝试直接调用do_invisible(调用的原语invisible),但同样地,它不会被导出(说实话,我不确定如何正确调用它).

然后我走了迂回的路,base::invisible从Rcpp通过一个叫R's Rcpp::Function.我的代码现在是这样的:

Rcpp::Function invisible = Rcpp::Environment("package:base")["invisible"];

// [[Rcpp::export]]
SEXP read_value(Rcpp::XPtr<std::vector<int>> x, int index) {
    try {
        return Rcpp::wrap(x->at(index));
    } catch (std::out_of_range const&) {
        return invisible(R_NilValue);
    }
}
Run Code Online (Sandbox Code Playgroud)

这编译并执行.不幸的是,这个invisible电话被忽略了; 当使用无效索引从R调用函数时,它会打印出来NULL.我希望它什么都不打印.

用于检测:

// [[Rcpp::export]]
Rcpp::XPtr<std::vector<int>> make_xvec() {
    return Rcpp::XPtr<std::vector<int>>{new std::vector<int>{1, 2, 3}};
}

/*** R
xv = make_xvec()
read_value(xv, 1)
invisible(read_value(xv, 4)) # Works
read_value(xv, 4)            # Doesn’t work
*/
Run Code Online (Sandbox Code Playgroud)

c++ r rcpp

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

我们如何用两行显示 F 统计量/自由度

我正在使用 Stargazer 输出包含多个 lm 模型的回归表。问题是 Stargazer 默认在一行中输出 F 统计量和自由度。如果您有 3 或 4 个模型,则意味着 Latex 中的输出不必要地宽并且延伸到页面之外。

有一个选项可以使用以下方法隐藏自由度:

stargazer(lm1,lm2,lm3,lm4, df = F)
Run Code Online (Sandbox Code Playgroud)

但是,没有办法让它显示在两行上。

这是一个可重现的不良结果示例:

lm.out.1 <- lm(stack.loss ~ Air.Flow , data=stackloss)
lm.out.2 <- lm(stack.loss ~ Water.Temp, data=stackloss)
lm.out.3 <- lm(stack.loss ~ Acid.Conc., data=stackloss)
lm.out.4 <- lm(stack.loss ~ Air.Flow + Water.Temp, data=stackloss)
lm.out.5 <- lm(stack.loss ~ Air.Flow + Water.Temp + Acid.Conc., data=stackloss)

stargazer(lm.out.1, 
          lm.out.2,
          lm.out.3,
          lm.out.4,
          lm.out.5)
Run Code Online (Sandbox Code Playgroud)

当你渲染乳胶输出时,你会得到一个不必要的宽表: 在此输入图像描述

当渲染打印时,它位于页边距之外: 在此输入图像描述

可以看到如何使用df=F选项以可打印的方式整齐有效地呈现该表:

stargazer(lm.out.1, 
          lm.out.2,
          lm.out.3,
          lm.out.4,
          lm.out.5, df = F)
Run Code Online (Sandbox Code Playgroud)

产生以下结果: 在此输入图像描述

但是,现在我们失去了有关自由度的信息。

有没有办法打印带有换行符的信息,以便它打印在表格的两行上? …

latex r linear-regression r-markdown stargazer

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

如何从 Unix 纪元开始以毫秒为单位创建时间点?

要创建当前时间的时间点,您可以使用:std::chrono::system_clock::now()

但是,我不知道如何创建自 UNIX 纪元以来给定毫秒数的时间点?

另外,std::chrono::time_point甚至是推荐的方式来及时表示“瞬间”?还是应该std::time_t优先考虑?

c++ time c++-chrono c++17 c++20

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

如何在 Windows 上使用 sys/socket.h?

我在 Linux 机器上使用套接字用 C 语言制作了一个服务器,它工作正常,但是当我尝试使用 Visual Studio 在 Windows 机器上运行它时,出现错误:

致命错误 C1083:无法打开包含文件:'sys/socket.h':没有这样的文件或目录

ide 告诉我找不到这个头文件。

#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
Run Code Online (Sandbox Code Playgroud)

c c++ sockets server

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

为什么我使用 read_fwf() 的代码不能像书中那样工作?

我通过 R Cookbook 第二版学习 R。在4.6读取固定宽度记录中,我输入了书中写的代码。但我的代码不像书上那样工作

Fisher    R.A.      1890 1962
Pearson   Karl      1857 1936
Cox       Gertrude  1900 1978
Yates     Frank     1902 1994
Smith     Kirstine  1878 1939
Run Code Online (Sandbox Code Playgroud)

将此行保存为“fixed-width.fwf”和“fixed-width.txt”

并运行代码

f1 = "fixed-width.fwf"
f2 = "fixed-width.txt"

t1 <- read_fwf(f1, fwf_empty(f1, col_names = c("last", "first", "birth", "death")))

t2 <- read_fwf(f2, fwf_empty(f2, col_names = c("last", "first", "birth", "death")))
Run Code Online (Sandbox Code Playgroud)

t1 和 t2 都打印此错误消息

Error: `file` must be a regular file, not a connection
Run Code Online (Sandbox Code Playgroud)

抱歉我的英语水平很低

r readr tidyverse

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

为什么在函数内的 extern 上提供显式初始化程序不会覆盖 extern?

根据C++ Primer,我们可以为定义为 extern 的变量提供初始值设定项,但这样做会覆盖 extern。具有初始值设定项的 extern 是一个定义:

extern double pi = 3.1416; // definition
Run Code Online (Sandbox Code Playgroud)

书中还指出,在函数内部为 extern 提供初始值设定项是错误的。在我看来,这两个陈述加在一起有点令人困惑,它们在我脑海中引起了以下问题:

如果在任何函数外部的 extern 上提供初始化程序可以覆盖 extern,为什么不能在函数内部的 extern 上提供它?

我也不明白为什么有人想要获得添加 extern 关键字的声明并提供初始值设定项。这与定义变量并为其提供初始化程序不一样吗?如果不是,为什么?答案是我们不能在函数内部为 extern 提供初始值设定项的原因吗?

c++ extern

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

标签 统计

c++ ×7

r ×4

c ×1

c++-chrono ×1

c++17 ×1

c++20 ×1

extern ×1

latex ×1

linear-regression ×1

math ×1

r-markdown ×1

rcpp ×1

readr ×1

regex ×1

server ×1

sockets ×1

stargazer ×1

tidyverse ×1

time ×1