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

Правка в цикле в Rust

Существующие ключи меняют повторной записью в цикле. Сначала запоминают все ключи в списке, затем для каждого имени читают число и кладут новое по тому же ключу. Новые ключи внутри такого цикла в учебных задачах не добавляют.

Удвоим каждое значение в маленькой карте:

use std::collections::HashMap; fn main() { let mut room = HashMap::new(); room.insert("a", 1); room.insert("b", 2); let keys: Vec<&str> = room.keys().copied().collect(); for k in keys { let v = room[k]; room.insert(k, v * 2); } println!("{}", room["a"]); println!("{}", room["b"]); }

После цикла "a" дает 2, "b" дает 4. Набор ключей тот же, что до цикла.

Менять можно выборочно:

use std::collections::HashMap; fn main() { let mut ages = HashMap::new(); ages.insert("ann", 20); ages.insert("bob", 30); let keys: Vec<&str> = ages.keys().copied().collect(); for k in keys { let v = ages[k]; if v < 25 { ages.insert(k, v + 1); } } println!("{}", ages["ann"]); }

Дана следующая карта:

let mut grid = HashMap::new(); grid.insert("x", 3); grid.insert("y", 5);

Прибавьте 10 к каждому значению через повторную запись по каждому ключу. Выведите значения по обоим именам.

Дана следующая карта:

let mut trio = HashMap::new(); trio.insert("a", 1); trio.insert("b", 2); trio.insert("c", 3);

Обнулите все значения в цикле, не убирая ключи. Выведите длину.

Дана следующая карта:

let mut tags = HashMap::new(); tags.insert("a1", 1); tags.insert("b2", 2); tags.insert("a3", 3);

Замените значения на 0 только для ключей, первый символ которых "a".

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