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

Цикл по многомерным комбинациям в Rust

Массив векторов

Внешний цикл идет по ячейкам массива, внутренний - по элементам вектора. Сумму копят с нуля:

let rows = [vec![1, 2], vec![3, 4, 5]]; let mut sum = 0; for row in &rows { for val in row { println!("{}", val); sum += val; } } println!("{}", sum); // выведет 15

Карта векторов

Внешний цикл дает вектор по очередному ключу, внутренний проходит его элементы. Порядок ключей не обещан:

use std::collections::HashMap; fn main() { let map: HashMap<&str, Vec<i32>> = HashMap::from([ ("a", vec![1, 2]), ("b", vec![3, 4]), ]); let mut sum = 0; for (_, row) in &map { for val in row { println!("{}", val); sum += val; } } println!("{}", sum); // выведет 10 }

Вектор карт

Внешний цикл выбирает карту по индексу, внутренний складывает значения ее пар:

use std::collections::HashMap; fn main() { let table = vec![ HashMap::from([("a", 1), ("b", 2)]), HashMap::from([("a", 3), ("b", 4)]), ]; let mut sum = 0; for row in &table { for (_, val) in row { println!("{}", val); sum += val; } } println!("{}", sum); // выведет 10 }

Дан массив векторов:

let rows = [vec![10, 20], vec![30]];

Найдите сумму всех чисел и выведите ее.

Дана карта векторов:

let map: HashMap<&str, Vec<i32>> = HashMap::from([ ("Ann", vec![5, 4, 5]), ("Bob", vec![3, 5, 4]), ]);

Найдите сумму всех оценок и выведите ее.

Дан вектор карт:

let table = vec![ HashMap::from([("a", 10), ("b", 20)]), HashMap::from([("a", 30), ("b", 40)]), ];

Найдите сумму всех чисел и выведите ее.

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