问题列表 - 第318035页

当我滚动时,VS Code 1.86 行代码开始跟随我在屏幕顶部拆分。为什么?

我刚刚升级到 VS Code 1.86,它已经开始使我正在查看的代码块的顶部/第一个/起始部分在我滚动时始终显示在编辑器区域的顶部,在分割视图/部分中。如果没有这个功能,我怎样才能摆脱这个并让它恢复到原来的样子呢?

又名:为什么会发生这种变化?如何在 VS Code 的编辑器区域中禁用粘性滚动?

visual-studio-code

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

在 Cuda 内核的嵌套数组中混合使用静态和动态共享内存

我有时会在 CUDA 内核中看到以下共享内存声明,但我不确定它的含义:

extern __shared__ T shmem[][SZ]
Run Code Online (Sandbox Code Playgroud)

作为SZ编译时常量。内核启动如下:

kernel<<<grid, block, shared_memory_size>>>()
Run Code Online (Sandbox Code Playgroud)

我的问题是:

  • 为什么动态和静态共享内存的混合会很有用(除了简化程序员的地址计算之外)?
  • 共享内存缓冲区 shmem 的总大小是多少?是吗shared_memory_size * SZ?
  • 与问题2相关:假设我可以在编译时计算shared_memory_size,我将如何重写共享内存声明以使其成为静态?shared T shmem[SZ*shared_memory_size]?

cuda gpu-shared-memory

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

rust 将向量写入文件(或字符串)的惯用方式是什么?元素之间有制表符,末尾有换行符?

我经常遇到这个问题。每次我将向量写入文件或将其转换为字符串时,我都想知道是否有更好的方法来执行此操作。我的(相当丑陋的)代码:

fn main() {
    let vec = vec![1, 2, 3, 4, 5];

    let as_string = vec
        .iter()
        .take(vec.len() - 1)
        .fold("".to_string(), |acc, elem| {
            acc + &format!("{}\t", elem)
        })
        + &format!("{}\n", vec.last().unwrap());
    
    print!("{}", as_string);
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我想迭代除最后一个元素之外的所有元素,并在每个向量元素后面附加一个“\t”,除非它是最后一个元素。在本例中,我想在元素后面附加一个“\n”。

我想知道是否有更简单的方法可以做到这一点。

iterator rust

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

在检查两个字符串是否不区分大小写相等时,变换视图而不是投影仪会降低 C 风格方法的性能

太长了;博士

\n

在检查两个字符串是否不区分大小写相等时,为什么这段代码

\n
bool rangeV3WithTransformViews(std::string_view str1, std::string_view str2) {\n    return equal(str1 | transform(tolowercase),\n                 str2 | transform(tolowercase));\n}\n
Run Code Online (Sandbox Code Playgroud)\n

比这个慢很多吗?

\n
bool rangeV3WithProj(std::string_view str1, std::string_view str2) {\n    return equal(str1, str2, std::equal_to{}, tolowercase, tolowercase);\n}\n
Run Code Online (Sandbox Code Playgroud)\n

从后面的代码中,GCC 13.2-O3设法生成与低级 C 风格解决方案相同的汇编代码:

\n
#define to_lower_ascii(c) (((c) >= \'A\' && (c) <= \'Z\') ? (c) + 32 : (c))\n\nint cstyle(const char* str1, const char* str2) {\n    while (*str1 != \'\\0\' && *str2 != \'\\0\' && to_lower_ascii(*str1) == to_lower_ascii(*str2)) {\n        str1++;\n        str2++;\n    }\n    return to_lower_ascii(*str1) …
Run Code Online (Sandbox Code Playgroud)

c++ performance benchmarking range-v3 c++20

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

如何尽早获得IO函数中转发的结果?

我创建了一系列流程“步骤”,这些步骤的实施方式使得可以尽早输出信息。

例如

mainFromSettings :: Settings -> IO ()
...
mainFromSettings ... =
    do
        Sys.setInputEcho False
        Sys.hSetBuffering Sys.stdout Sys.NoBuffering
        sContent <- getContents
        let
            records :: [[String]]
            records = Rcr.fromContent rcrConfig sContent
...
        print records
Run Code Online (Sandbox Code Playgroud)

每次从惰性 IO 流“sContent”构建记录时,上面的代码片段都会打印一条记录。

我想这是这样工作的,因为一旦输入一行,“打印记录”就会占据准备打印的列表的头部。我还假设当列表的顺序相反时这将不起作用。

不幸的是,在其中一个流程步骤中它并不是这样工作的。对于此流程步骤,在显示单个字符之前,记录列表必须完整。该函数的不同之处在于一个额外的 IO 函数,它为每条记录提供额外的信息。

为了理解这个问题,我创建了以下代码来模拟这个额外的 IO 功能。该代码还模仿已经可用的记录(以避免与打开句柄有关的冲突)。

import qualified System.IO as Sys
import qualified System.IO.Echo as Sys

main :: IO ()

main =
    Sys.setInputEcho False >>
    Sys.hSetBuffering Sys.stdout Sys.NoBuffering >>
    Sys.hSetBuffering Sys.stdin Sys.NoBuffering >>
    checkAll ["12","34","56"] >>=
    print

checkAll :: [String] -> IO [String] …
Run Code Online (Sandbox Code Playgroud)

io haskell

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

R中的pivot_wider从三列获取距离矩阵

我有一个包含 3 列的数据框,如下所示:

set.seed(123)

demo_data <- data.frame(
  
  query = rep(sprintf("ID%s", c(1:4)),4),
  target = rep(sprintf("ID%s", c(1:4)), each = 4),
  dist = round(runif(min = 40, max = 100, n = 16))
  
)
Run Code Online (Sandbox Code Playgroud)

我计划获取一个矩阵,其中query和target列中列出的值是新列,ANI 值是数据框中每个单元格的值,如下所示:

识别号1 识别号2 ID3 ID4
识别号1 55 93 79 57
识别号2 43 82 83 49
ID3 60 78 73 98
ID4 97 100 76 94

PD:这些是合成值,在我的原始数据中,我希望每个单元格的对角线为 100(相同对相同)。

pivot r dataframe

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

NJsonSchema v.11 破坏了 JsonSchemaGeneratorSettings

在 NJsonSchema 10.9 中,我曾经用 C# 创建模式生成器,如下所示:

private static JsonSchemaGenerator MakeGenerator()
{
    JsonSchemaGeneratorSettings settings = new()
    {
        DefaultReferenceTypeNullHandling = ReferenceTypeNullHandling.NotNull,
        AllowReferencesWithProperties = true,
        FlattenInheritanceHierarchy = true
    };
    return new( settings );
}
Run Code Online (Sandbox Code Playgroud)

从版本 11 开始,JsonSchemaGeneratorSettings 是一个抽象类。我能找到的唯一实现是 SystemTextSchemaGeneratorSettings,它不能满足我的要求。实现JsonSchemaGeneratorSettings需要IReflectionService,但是DefaultReflectionService类也消失了。

有谁知道我必须做什么才能获得与 10.9 中相同的行为?

njsonschema

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

即使我在堆上声明内存,void 函数是否可以防止内存泄漏?

我目前正在从教科书上学习 C++,根据作者的说法,这段代码不会导致内存泄漏,尽管当我询问 ChatGPT 时,它告诉我事实并非如此。代码很简单,如下:

#include<iostream>

void FuncOne() {
    // this is created on the free store?
    // even after the function is finished, the memory is still there.. (I assume)
    int* pVar = new int(5);
    std::cout << "the value of *pVar is:" << *pVar;
}

int main() {
    FuncOne();
    std::system("pause");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

*pVar既然没有就应该会导致内存泄漏delete吗?也许有人可以向我解释一下是否有我遗漏的东西或者这是作者的一个简单错误?

任何解释将不胜感激!

c++ memory memory-leaks memory-management

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

如何处理javafx中的多个按钮

我的 fxml 文件上有多个按钮。onAction通过单击任何按钮,将显示定义的 fxml 表单。问题是:

我是否应该使用例如 foreach 加载所有表单,并且当按钮单击正确的表单时仅显示或没有必要?

如果我应该加载所有表单,我应该在initialize函数中执行它吗?

我是新手JavaFx,不知道最好的方法是什么?

编辑:

例如,当 btn1 单击时,将显示“添加用户”表单,当单击“btn2”时,将显示“删除用户”表单,...

问题是:

我是否应该加载添加用户表单并删除用户表单,...当程序启动时以及当例如 btn1 单击添加用户表单时是否显示?

<BorderPane fx:controller="com.project.controller.eventcontroller" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefHeight="400.0" prefWidth="600.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
   <left>
      <VBox  prefHeight="400.0" prefWidth="110.0" style="-fx-background-color: #404040;" BorderPane.alignment="CENTER">
         <children>
            <Button fx:id="btn1" alignment="TOP_LEFT" mnemonicParsing="false" prefHeight="17.0" prefWidth="111.0" text="btn1" />
            <Button fx:id="btn2" alignment="TOP_LEFT" layoutX="10.0" layoutY="10.0" mnemonicParsing="false" prefHeight="17.0" prefWidth="111.0" text="btn2">
               <VBox.margin>
                  <Insets top="12.0" />
               </VBox.margin>
            </Button>
            <Button fx:id="btn3" alignment="TOP_LEFT" layoutX="10.0" layoutY="47.0" mnemonicParsing="false" prefHeight="17.0" prefWidth="111.0" text="btn3">
               <VBox.margin>
                  <Insets top="12.0" />
               </VBox.margin> …
Run Code Online (Sandbox Code Playgroud)

java javafx fxml

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

如何在CUDA中使用%%globaltimer寄存器?

这个问题的答案建议使用%%globaltimer寄存器来测量 CUDA 内核中经过的时间。我决定尝试一下:

#define NS_PER_S 1000000000

__global__ void sleepKernel() {
    uint64_t start, end;
    uint64_t sleepTime = 5 * NS_PER_S;     // Sleep for 5 seconds

    if (threadIdx.x == 0) {
        // Record start time
        asm volatile("mov.u64 %0, %%globaltimer;" : "=l"(start));

        // Sleep for 5 seconds
        __nanosleep(sleepTime);

        // Record end time
        asm volatile("mov.u64 %0, %%globaltimer;" : "=l"(end));

        // Calculate and print the elapsed time in nanoseconds and milliseconds
        uint64_t elapsedNs = end - start;
        double elapsedMs = (double)elapsedNs / 1000000.0; …
Run Code Online (Sandbox Code Playgroud)

cuda

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