我想从一系列我命名为 的向量创建一个数据框d*i*。我尝试使用粘贴函数来执行此操作,但它只是构建了一个包含值为“d1、d2、d3...”的单列的数据框,我想将与这些变量名称关联的向量放入其中。我该怎么做这?
d1 <- c(6.3,8.3,6.6,0,8.4,8.6)
d2 <- c(8.2,8.7,8.6,7.9,7.1,7.6)
d3 <- c(7.1,6.4,6.6,8,7.5,10.3)
d4 <- c(8,7.7,7.3,0,9.4,6.4)
d5 <- c(8.5,6.8,0,0,7.3,9.7)
d6 <- c(5.9,7.5,6.5,0,9.8,7.8)
d7 <- c(7.6,5.3,6.7,0,6.6,7.4)
d8 <- c(9.5,5.6,8.8,0,8.6,8.3)
d9 <- c(8.5,7.4,0,0,9.2,8.6)
d10 <- c(7.8,6.9,8.6,6.7,6.8,6.1)
mydata <- data.frame(paste("d",1:10))
Run Code Online (Sandbox Code Playgroud) 以下代码生成的程序集在使用-O3. 为了完整起见,代码始终在 GCC 13.2 中执行 SIMD,而从不在 clang 17.0.1 中执行 SIMD。
#include <array>
__attribute__((noinline)) void fn(std::array<int, 4>& lhs, const std::array<int, 4>& rhs)
{
for (std::size_t idx = 0; idx != 4; ++idx) {
lhs[idx] = lhs[idx] + rhs[idx];
}
}
Run Code Online (Sandbox Code Playgroud)
这是Godbolt 中的链接。
这是 GCC 12.3 的实际汇编(使用 -O3):
fn(std::array<int, 4ul>&, std::array<int, 4ul> const&):
lea rdx, [rsi+4]
mov rax, rdi
sub rax, rdx
cmp rax, 8
jbe .L2
movdqu xmm0, XMMWORD PTR [rsi]
movdqu xmm1, XMMWORD PTR [rdi]
paddd …Run Code Online (Sandbox Code Playgroud) 我有一种代表持久记录的类型。我想要一个非常相似的类型来表示应该发布以创建新记录的数据。
这是完整的类型:
data Record = Reading
{ id: UUID
, value: String
...
}
Run Code Online (Sandbox Code Playgroud)
“新”类型与减去“id”相同,该“id”将由数据库自动生成。我如何定义这个类型?我正在使用servant 来定义API。
我当前的策略是在类型和所有字段前加上“new”前缀,这有效,但对于多字段模型来说是多余的。我还看到了嵌套策略,其中我有一个共同的共享类型。我也考虑过将 id 设为可选,但我真的不想发布它。
我对CefSharp很陌生,事实上,这是我第一次使用它。我在 net core 6.0 winforms 应用程序下使用它,但同样的问题和场景也适用于 .NET Framework。
\n我正在运行 Windows 10,并且启用了操作系统暗模式,以防万一。
\n这是我调用来初始化CefSharp环境的方法:
\npublic bool InitializeCefSharp()\n{\n if (Cef.IsInitialized)\n {\n throw new InvalidOperationException("CefSharp is already initialized.");\n }\n\n string cachePath = $"{System.Windows.Forms.Application.StartupPath}\\\\cache\\\\CefSharp";\n\n var settings = new CefSettings\n {\n CachePath = cachePath,\n RootCachePath = cachePath,\n CommandLineArgsDisabled = false,\n IgnoreCertificateErrors = true,\n Locale = "en-US",\n PersistSessionCookies = true,\n PersistUserPreferences = false,\n WindowlessRenderingEnabled = false\n };\n\n bool success = Cef.Initialize(settings, performDependencyCheck: true);\n return success;\n}\nRun Code Online (Sandbox Code Playgroud)\n注意:虽然这是 C# 代码,但我实际上使用 …
下面的代码重现了我遇到的问题,MSVC 2022:
#include <iostream>
struct A {
static void message()
{
std::cout << "A::message()\n";
}
struct B {
B() {}
~B()
{
A::message();
}
};
static inline B b;
};
int main()
{
}
Run Code Online (Sandbox Code Playgroud)
通过上面的代码,我看到如预期的那样出现了消息。然而:
B(),那么析构函数~B()似乎被删除,因为消息消失了。int dummy;向结构添加一个虚拟属性B,则该消息会再次出现。我确实找不到答案的问题:
B(),也没有属性B,编译器只是将类标记B为空,然后完全跳过它。它是否正确?B()足够,或者我还应该使用B虚拟属性使其非空int dummy;?我正在学习 ReactJs,在运行代码时,收到警告“第三方 cookie 将被阻止”。在控制台的“问题”选项卡(检查)中了解更多信息。运行代码后,我每秒都会在控制台中收到此警告。该警告的计数每秒持续增加。如何阻止这个。
谢谢
我试图删除这个但没有得到正确的答案。我希望删除此警告或至少停止增加此警告的数量。
请参阅下面的代码。
fn listen() {
let listener = TcpListener::bind("127.0.0.1:3000").unwrap();
for stream in listener.incoming() {
let mut stream = stream.unwrap();
let mut data_buf = Vec::new();
stream.read_to_end(&mut data_buf).unwrap(); // Stream read
println!("{}", String::from_utf8(data_buf).unwrap());
stream.write_all(get_http_response().as_bytes()).unwrap();
}
}
fn get_http_response() -> String {
let status_line = "HTTP/1.1 200 OK";
let contents = "<!DOCTYPE html>
<html lang=\"en\">
<head>
<meta charset=\"utf-8\">
<title>Poda thendi!</title>
</head>
<body>
<h1>Poda thendi!</h1>
<p>Hi from Rust</p>
</body>
</html>";
let length = contents.len();
format!("{status_line}\r\nContent-Length: {length}\r\n\r\n{contents}")
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我在浏览器上访问 127.0.0.1:3000,它会显示待处理状态。
但如果我删除“Stream read”行,它就会按预期工作。为什么?
我有以下数据框:
| 列0 |
|---|
| 1 |
| 2 |
| 3 |
| 4 |
| 5 |
| ... |
| 1000 |
我想将 col0 滚动到窗口大小为 5 的数据框中,所以结果将是这样的:
| 列0 | 第 1 列 | 列2 | ... | 995号 |
|---|---|---|---|---|
| 1 | 2 | 3 | ... | 996 |
| 2 | 3 | 4 | ... | 997 |
| 3 | 4 | 5 | ... | 998 |
| 4 | 5 | 6 | ... | 999 |
| 5 | 6 | 7 | ... | 1000 |
我尝试过使用循环和“iloc”,这会产生正确的结果,但随着原始数据帧变得更长,需要很长时间才能完成。要完成 10,000 个,大约需要 2 分钟,20,000 个几乎需要 10 分钟,依此类推……有没有办法在 Python 中更快、更高效地完成它?
以这段代码为例(演讲 LLVM Optimization Remarks - Ofek Shilon - CppCon 2022,21:28):
void somefunc(const int&);
int whateva();
void f(int i, int* res)
{
somefunc(i);
i++;
res[0] = whateva();
i++;
res[1] = whateva();
i++;
res[2] = whateva();
}
Run Code Online (Sandbox Code Playgroud)
由于somefunc和whateva的主体不可用于此翻译单元(从现在起为 TU)中的编译器,因此可能会错过很多优化机会。
如果您的项目仅使用 C++20 模块,这个问题是否“已解决”?据我所知,在使用模块时,编译器会生成一些包含有关模块的元数据的文件,类似于预编译头,我们将其称为预编译模块,并且这些预编译模块必须包含在任何其他模块中(在命令行上)导入它们。
这是否意味着“翻译单元边界悲观化”(我编了这个名字;我不知道它是否有一个)在使用模块时肯定消失了,因为所有模块都会看到所有主体(感谢附加的预编译模块) )每个函数?
换句话说,如果您的项目不使用任何单个#include,除了动态链接库之外,新的“编译器可见性边界”(忽略 LTO)是什么?
我不确定用什么术语来正确解释这一点,但我已将代码单独放入一个文件中,以了解它是如何工作的,我希望有人可以进一步帮助我!
我理解的主要问题是为什么它void (*exec)(struct test_t*);确实有效?结构成员将自身转换为结构指针?这让我很困惑。
另外,在 switch-case 语句中,我理解在这些行中test.exec = fcn1; test.exec(&test);函数被分配给该结构成员,并且在括号中传递函数参数以便执行该函数。但是这个设置在变量定义中是如何实际发生的呢?
我基本上是分配一个函数作为结构成员吗?如果是,那么在编译结构之前它如何了解自身?这个语法是(*x)(struct y*)用来做什么的?
typedef struct test_t{
int num;
void (*exec)(struct test_t*);
}test_t;
void fcn0(test_t* test);
void fcn1(test_t* test);
void fcn2(test_t* test);
int main(){
while(1){
test_t test = {
.num = 0,
.exec = fcn0
};
printf("Enter a number: ");
scanf("%d", &test.num);
switch (test.num)
{
case 1:
test.exec = fcn1;
test.exec(&test);
break;
case 2:
test.exec = fcn2;
test.exec(&test);
break;
default:
test.exec = fcn0;
test.exec(&test);
break;
} …Run Code Online (Sandbox Code Playgroud)