Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmSeFV 198 of 373 menu
◀ ▶

Множество из вектора в Rust

Значения из вектора переносят в множество циклом, и повторы пропадают. Обходят вектор так же, как в разделе про векторы, а каждый элемент дописывают в набор. Дубликаты в списке схлопываются, длина множества считает только уникальные значения.

Возьмем вектор с повтором и соберем множество:

use std::collections::HashSet; fn main() { let items = vec!["a", "b", "a", "c"]; let mut set = HashSet::new(); for v in &items { set.insert(v.to_string()); } println!("{}", set.len()); }

Длина 3, хотя в векторе четыре элемента. Ссылка на вектор в цикле не забирает сам список, его можно использовать дальше.

Тот же прием работает для вектора чисел:

use std::collections::HashSet; fn main() { let vals = vec![1, 2, 1]; let mut set = HashSet::new(); for v in &vals { set.insert(*v); } println!("{}", set.len()); }

Дан вектор:

let words = vec!["go", "go", "rust"];

Соберите set циклом и выведите длину.

Дан вектор:

let vals = vec![5, 5, 5, 9];

Перенесите элементы в набор и выведите длину и признак наличия 9.

Даны переменные:

let items: Vec<&str> = vec![]; let mut set = HashSet::new();

Обойдите items и скажите, какая длина у set после цикла.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить