gpt4 book ai didi

types - 如何从 HashMap 创建条目的 Vec?

转载 作者:行者123 更新时间:2023-11-29 08:29:31 26 4
gpt4 key购买 nike

给定一个 HashMap<Token, Frequency> , 我想要一个 Vec对这些对的引用。我发现这些对的类型是 Entry ,所以它看起来像:

use std::collections::HashMap;

type Freq = u32;
type Token = String;

struct TokenizeState {
tokens: HashMap<Token, Freq>,
text: Vec<std::collections::hash_map::Entry<Token, Freq>>,
}

fn main() {}

这段代码有错误:

error[E0106]: missing lifetime specifier
--> src/main.rs:8:15
|
8 | text: Vec<std::collections::hash_map::Entry<Token, Freq>>,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected lifetime parameter

向结构添加生命周期说明符会导致相同的错误:

struct TokenizeState<'a> {
tokens: HashMap<Token, Freq>,
text: Vec<&'a std::collections::hash_map::Entry<Token, Freq>>,
}

我的主要问题是我不知道 std::collections::hash_map::Entry<Token, Freq>是正确的类型。我已经尝试了很多东西,比如更明显的 HashMap<Token, Freq>::Entry , 无法正常工作。

最佳答案

Entry 需要生命周期,正如您在 the documentation 中看到的那样.像这样:

struct TokenizeState<'a> {
tokens: HashMap<Token, Freq>,
text: Vec<std::collections::hash_map::Entry<'a, Token, Freq>>,
}

关于types - 如何从 HashMap 创建条目的 Vec?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51459146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com