02-Rust常用集合(遍历数组并获取下标最佳方式)

一 、Vector

https://doc.rust-lang.org/std/vec/struct.Vec.html#method.pop

1、创建方式

  • Vec::new()
  • vec![]

2、新增

push();

3、删除

  • pub fn pop(&mut self) -> Option;
  • pub fn remove(&mut self, index: usize) -> T

4、获取

  • 下标
  • get(i)

5、遍历

let v = vec![1, 2, 3];
for i in &v {
    println!("{}", i);
}

// 性能较低
for i in 0..v.len(){
    println!("{}", v[i]);
}
// 改进
for (idx, val) in nums.iter().enumerate() {
        ....
    }

6、长度

pub fn len(&self) -> usize

二、 HashMap

1、创建方式

  • HashMap::new();
fn main() {
    use std::collections::HashMap;

    let teams_list = vec![
        ("中国队".to_string(), 100),
        ("美国队".to_string(), 10),
        ("日本队".to_string(), 50),
    ];

    let teams_map: HashMap<_,_> = teams_list.into_iter().collect();

    println!("{:?}",teams_map)
}

2、新增

pub fn insert(&mut self, k: K, v: V) -> Option

3、删除

pub fn remove(&mut self, k: &Q) -> Option

4、获取

pub fn get(&self, k: &Q) -> Option<&V>

5、遍历

let map = HashMap::from([
    ("a", 1),
    ("b", 2),
    ("c", 3),
]);

for (key, val) in map.iter() {
    println!("key: {key} val: {val}");
}

6、长度

pub fn len(&self) -> usize

三、 HashSet

1、创建方式

2、新增

3、删除

4、获取

5、遍历

6、长度

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 使用 Rust 语言遍历所有文件夹的方法如下: 1. 使用 std::fs 库中的 read_dir() 函数,它可以读取给定路径的目录内容。 2. 在循环中使用 for 循环遍历 read_dir() 函数的返回值。 3. 对于每个遍历到的目录条目,使用 std::fs 库中的 metadata() 函数检查它是否是目录。 4. 如果是目录,则递归调用上述步骤,以便遍历该目录中的所有内容。 代码示例如下: ``` use std::fs; fn list_dirs(path: &str) { for entry in fs::read_dir(path).unwrap() { let entry = entry.unwrap(); let metadata = entry.metadata().unwrap(); if metadata.is_dir() { println!("{} is a directory", entry.path().display()); list_dirs(&entry.path().to_string_lossy()); } else { println!("{} is a file", entry.path().display()); } } } ``` 在上面的代码中,`list_dirs()` 函数接收一个字符串参数,表示要遍历的目录的路径。它使用 read_dir() 函数读取该目录的内容,然后使用 for 循环遍历每个目录条目。对于每个条目,它使用 metadata() 函数检查它是否是目录,如果是,则递归调用 `list_dirs()` 函数,否则打印条目路径并将其视为文件。 ### 回答2: Rust是一种现代的系统级编程语言,具有高性能、并发安全和内存安全的特点。它的标准库提供了丰富的功能,使得遍历文件夹成为一项相对简单的任务。 要遍历所有文件夹,可以使用标准库中的`std::fs`模块。该模块提供了一系列用于文件和目录操作的函数。具体步骤如下: 首先,需要导入 `std::fs` 模块使其可用。可以使用如下代码进行导入: ```rust use std::fs; ``` 然后,可以使用`std::fs::read_dir`函数来获取目标文件夹下的所有文件和文件夹的迭代器。该函数需要传入一个文件夹路径作为参数,并返回一个`fs::ReadDir`迭代器。具体代码如下: ```rust let dir = fs::read_dir("your_directory_path")?; ``` 接下来,可以使用`for`循环遍历迭代器中的每个项,获取文件夹下的所有文件和文件夹路径。具体代码如下: ```rust for entry in dir { let entry = entry?; let path = entry.path(); println!("{}", path.display()); } ``` 在循环中,可以使用`path.display()`方法来打印文件或文件夹的路径,`display()`方法会以友好的方式显示路径。 最后,记得在代码最外层的`main`函数上加上错误处理(例如使用`?`运算符或`try!`宏),以防发生意外错误。 综上所述,以上代码可以用于遍历指定文件夹下的所有文件和文件夹。你可以根据自己的实际需求,对获取到的路径进行进一步的处理和操作。 ### 回答3: Rust语言中,可以使用标准库的`std::fs`模块来遍历所有文件夹。下面是一个用于遍历文件夹的简单示例代码: ```rust use std::fs; fn visit_dirs(dir: &std::path::Path) -> Result<(), Box<dyn std::error::Error>> { if dir.is_dir() { for entry in fs::read_dir(dir)? { let entry = entry?; let path = entry.path(); if path.is_dir() { // 递归访问子文件夹 visit_dirs(&path)?; } else { // 处理文件 println!("{}", path.display()); } } } Ok(()) } fn main() { let root_dir = std::path::Path::new("/path/to/root/directory"); if let Err(e) = visit_dirs(&root_dir) { eprintln!("Error: {}", e); } } ``` 在上述代码中,`visit_dirs`函数用于遍历指定文件夹及其子文件夹中的所有文件。该函数接受一个`Path`类型的参数,表示要遍历的文件夹路径。首先,我们检查给定路径是否是一个文件夹,如果是,则遍历该文件夹中的所有条目。对于每个条目,我们检查它是否是一个文件夹。如果是文件夹,我们通过递归调用`visit_dirs`函数来访问子文件夹。如果是文件,则进行相应的处理(这里只是简单地打印文件路径)。 在`main`函数中,我们可以通过指定根文件夹的路径来调用`visit_dirs`函数,从而遍历所有文件夹。如果遍历过程中出现错误,我们将通过标准错误流打印错误信息。 请注意,在实际使用中,你需要将`/path/to/root/directory`替换为实际的根文件夹路径。此外,上述示例只是展示了遍历文件夹的基本原理,你可以根据具体需求进行进一步的处理和操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值