问题列表 - 第318109页

在 R 中,如何从一系列具有索引名称的变量快速创建数据框?

我想从一系列我命名为 的向量创建一个数据框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)

r variable-assignment dataframe

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

为什么 GCC 生成有条件执行 SIMD 实现的代码?

以下代码生成的程序集在使用-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)

c++ gcc simd auto-vectorization

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

在 Haskell 中定义新类型与持久类型的惯用方法

我有一种代表持久记录的类型。我想要一个非常相似的类型来表示应该发布以创建新记录的数据。

这是完整的类型:

data Record = Reading
  { id: UUID
  , value: String
  ...
  }
Run Code Online (Sandbox Code Playgroud)

“新”类型与减去“id”相同,该“id”将由数据库自动生成。我如何定义这个类型?我正在使用servant 来定义API。

我当前的策略是在类型和所有字段前加上“new”前缀,这有效,但对于多字段模型来说是多余的。我还看到了嵌套策略,其中我有一个共同的共享类型。我也考虑过将 id 设为可选,但我真的不想发布它。

postgresql rest haskell servant

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

如何在.NET 中为 CefSharp Web 浏览器启用暗模式?

设想

\n

我对CefSharp很陌生,事实上,这是我第一次使用它。我在 net core 6.0 winforms 应用程序下使用它,但同样的问题和场景也适用于 .NET Framework。

\n

我正在运行 Windows 10,并且启用了操作系统暗模式,以防万一。

\n

这是我调用来初始化CefSharp环境的方法:

\n
public 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}\n
Run Code Online (Sandbox Code Playgroud)\n

注意:虽然这是 C# 代码,但我实际上使用 …

.net c# chromium-embedded cefsharp .net-core

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

当构造函数不存在时,析构函数被省略?

下面的代码重现了我遇到的问题,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)

通过上面的代码,我看到如预期的那样出现了消息。然而:

  1. 如果我删除 constructor B(),那么析构函数~B()似乎被删除,因为消息消失了。
  2. 如果我随后int dummy;向结构添加一个虚拟属性B,则该消息会再次出现。

我确实找不到答案的问题:

  1. 在我看来,如果没有构造函数B(),也没有属性B,编译器只是将类标记B为空,然后完全跳过它。它是否正确?
  2. 是否有记录表明这种情况可能发生?鉴于析构函数的内容,我认为这永远不会发生。
  3. 我怎样才能保证它始终正常工作,而不仅仅是我现在使用的编译器。定义构造函数是否B()足够,或者我还应该使用B虚拟属性使其非空int dummy;

c++ constructor destructor

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

第三方 cookie 将被阻止。在“问题”选项卡中了解更多信息

我正在学习 ReactJs,在运行代码时,收到警告“第三方 cookie 将被阻止”。在控制台的“问题”选项卡(检查)中了解更多信息。运行代码后,我每秒都会在控制台中收到此警告。该警告的计数每秒持续增加。如何阻止这个。

谢谢

我试图删除这个但没有得到正确的答案。我希望删除此警告或至少停止增加此警告的数量。

cookies google-chrome third-party-cookies

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

Rust TcpStream 读后不能写,但可以不读而写。为什么?

请参阅下面的代码。

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”行,它就会按预期工作。为什么?

rust

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

如何在 Python 中将滚动子序列生成到数据框中

我有以下数据框:

列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 中更快、更高效地完成它?

python dataframe pandas

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

C++:如果一个项目没有包含,但仅使用 C++20 模块,编译器会看到每个函数体吗?

以这段代码为例(演讲 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)

由于somefuncwhateva的主体不可用于此翻译单元(从现在起为 TU)中的编译器,因此可能会错过很多优化机会。

如果您的项目仅使用 C++20 模块,这个问题是否“已解决”?据我所知,在使用模块时,编译器会生成一些包含有关模块的元数据的文件,类似于预编译头,我们将其称为预编译模块,并且这些预编译模块必须包含在任何其他模块中(在命令行上)导入它们。

这是否意味着“翻译单元边界悲观化”(我编了这个名字;我不知道它是否有一个)在使用模块时肯定消失了,因为所有模块都会看到所有主体(感谢附加的预编译模块) )每个函数?

换句话说,如果您的项目不使用任何单个#include,除了动态链接库之外,新的“编译器可见性边界”(忽略 LTO)是什么?

c++ compiler-optimization c++20 c++-modules

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

为什么将结构成员转换为其结构指针类型有效?

我不确定用什么术语来正确解释这一点,但我已将代码单独放入一个文件中,以了解它是如何工作的,我希望有人可以进一步帮助我!

我理解的主要问题是为什么它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)

c struct pointers function

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