小编use*_*607的帖子

如何在使用iter().filter().collect()而不是Vec <&& String>后获取Vec <&String>

我有一个字符串向量.我想从这个向量中得到两个子集:字符串"zzz"和字符串"bye".

每个子集的类型是Vec< && String>.这是对原始String的引用的引用向量.我该Vec<& String>怎么办?

我正在编写的代码:

use std::string::String;
use std::vec::Vec;

fn main() {
    let a1 = String::from("hi");
    let a2 = String::from("bye");
    let a3 = String::from("zzz");

    let v_before: Vec<&String> = vec![&a1, &a2, &a3];

    // ref_a is a copy of v_before[0]
    let ref_zzz_a: &String = v_before[2];
    let ref_zzz_b: &String = v_before[2];

    println!("before: {:?}", v_before);

    // QUESTION: why can not this also be Vec<& String> ?
    // v_zzz is just like making  vec![ref_zzz_a, ref_zzz_b]
    let …
Run Code Online (Sandbox Code Playgroud)

iterator reference vector rust

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

在纯UEFI中启动时,谁启用A20线路?

这是由UEFI固件还是由GRUB grubx64.efi引导加载程序处理?

我看着https://wiki.osdev.org/UEFI声称:

UEFI固件...还准备了具有平面分段的保护模式环境,并为x86-64 CPU准备了具有身份映射分页的长模式环境。A20门也被启用。

但找不到任何官方资源来备份此信息。UEFI规范没有提及这一点。

linux内核提供了一个efi-stub,可以用作引导加载程序,但是在检查了其源之后,我看不到它是否启用了A20。因此,我仍然不知道它是UEFI固件的工作还是Bootloader的工作。

(我想为UEFI编写自己的引导程序,并想了解UEFI固件提供了“开箱即用”的设置以及我必须实现的部分)

x86 grub x86-64 bootloader uefi

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

OpenGL显示清单

有人可以向我解释一下一旦编译后如何在OpenGL中修改显示列表?我如何执行,例如对其进行矩阵转换?

提前致谢。

opengl list matrix

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

如何在 C 中将 3d 向量表示为数组和各个分量?

有时,将 3d 向量视为包含 3 个值的数组会更简单。但是,当您能够编写vec.y访问各个组件时,它会使代码更加清晰。如何对向量结构进行编码以允许两种表示形式?

期望的结果:能够像这样编码

y_component = 3.0 * myvec.y

for (i = 0; i < 2; i++) {
    printf("%f", myvec.v[i])
}
Run Code Online (Sandbox Code Playgroud)

目前我有这个

struct vector3 {
    double v[3];
    double *x, *y, *z;
};

// then inside an init function it already gets a little bit strange
myvec.v = (double [3]) {1.0, 3.0, -5.0};
myvec.x = &vector3.v[0];
myvec.y = &vector3.v[1];

// And accessing individual component can be confusing 
y_component = 3.0 * (*myvec.y);

// Its also strange when …
Run Code Online (Sandbox Code Playgroud)

c

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

无法使用.ToList()将IEnumerable <int>从LINQ强制转换为List <int>?

在阅读完这个答案后,/sf/answers/63148641/我想看看LINQ如何在多维列表上工作,所以这里有一些我无法正确的测试代码.

class Program
{
    static void Main(string[] args)
    {
        // Two dimensional list of ints
        var arr = new List<List<int>>();
        var rand = new Random();

        // fill the array with random values, this works fine.
        for (int i=0; i<10; i++)
        {
            arr.Add(new List<int>());
            for (int k=0; k<5; k++)
            {
                arr[i].Add( rand.Next(1, 21) );
            }
        }

        var q = from int e in arr select e;
        List<int> lst = q.ToList();  // This fails with InvalidCastException

        // here I would …
Run Code Online (Sandbox Code Playgroud)

c# linq

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

获取matlab显示平方根(即2 ^(1/2)而不是1.414)

我有一些简单的方程式,我想通过matlab管道.但我希望得到确切的答案,因为这些值预计将在以后使用和简化.

眼下Matlab的显示sqrt(2.0)1.1414,而不是像2^(1/2)我想.

我试图打开format rat但这是危险的becasue它显示sqrt(2)1393/985无任何形式的警告.

有"象征性的数学"但似乎有点矫枉过正.

我想要的就是2 + sqrt(50)返回类似的东西2 + 5 * (2)^(1/2),甚至我5岁的卡西欧计算器都可以做到这一点!

那么我可以做些什么2 + sqrt(50)2 + 5 * (2)^(1/2)在matlab中进行评估呢?

matlab

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

标签 统计

bootloader ×1

c ×1

c# ×1

grub ×1

iterator ×1

linq ×1

list ×1

matlab ×1

matrix ×1

opengl ×1

reference ×1

rust ×1

uefi ×1

vector ×1

x86 ×1

x86-64 ×1