我正在尝试执行以下操作:
class sig
{
public:
int p_list[4];
}
sig :: sig()
{
p_list[4] = {A, B, C, D};
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误
缺少构造函数中的表达式.
那么我如何初始化一个数组呢?
我有一个值,我想要对齐给定的对齐,即如果尚未对齐,则将值增加到对齐的下一个倍数.
在C++中执行此操作的简洁方法是什么?
例如
int x;
int alignment;
int y = ???; // align x to alignment
Run Code Online (Sandbox Code Playgroud) 试试吧:
"hello" > 0
Run Code Online (Sandbox Code Playgroud)
我尝试过使用,as.numeric("hello")但它只是让我回来了NA.是什么赋予了?
我正在编写一个从简单文本文件中读取一些数据的应用程序.我感兴趣的数据文件包含以下形式的行:
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++中正则表达式概念的新手,所以我需要一些帮助.
谢谢
我试图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) 我正在使用 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)
但是,现在我们失去了有关自由度的信息。
有没有办法打印带有换行符的信息,以便它打印在表格的两行上? …
要创建当前时间的时间点,您可以使用:std::chrono::system_clock::now()。
但是,我不知道如何创建自 UNIX 纪元以来给定毫秒数的时间点?
另外,std::chrono::time_point甚至是推荐的方式来及时表示“瞬间”?还是应该std::time_t优先考虑?
我在 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) 我通过 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)
抱歉我的英语水平很低
根据C++ Primer,我们可以为定义为 extern 的变量提供初始值设定项,但这样做会覆盖 extern。具有初始值设定项的 extern 是一个定义:
extern double pi = 3.1416; // definition
Run Code Online (Sandbox Code Playgroud)
书中还指出,在函数内部为 extern 提供初始值设定项是错误的。在我看来,这两个陈述加在一起有点令人困惑,它们在我脑海中引起了以下问题:
如果在任何函数外部的 extern 上提供初始化程序可以覆盖 extern,为什么不能在函数内部的 extern 上提供它?
我也不明白为什么有人想要获得添加 extern 关键字的声明并提供初始值设定项。这与定义变量并为其提供初始化程序不一样吗?如果不是,为什么?答案是我们不能在函数内部为 extern 提供初始值设定项的原因吗?