ベクタの作成
CoddyのRustジャーニー「Logic & Flow」セクションの一部 — レッスン 8/66。
ベクタとは何かを理解したところで、それらを作成する方法を学びましょう。Rustはベクタを作成するための主要な方法を2つ提供しており、それぞれ異なる状況に適しています。
最初のメソッドは、後で要素を追加できる空のベクタを作成するために Vec::new() を使用します:
let mut numbers = Vec::new();後でこの空のベクタに要素を追加したくなる可能性が高いため、mut を使用していることに注意してください。Rustは空のベクタの型を常に判断できるわけではないため、明示的に指定する必要がある場合があります。
let mut numbers: Vec<i32> = Vec::new();2番目の方法は、vec![]マクロを使用して、初期値を持つベクタを作成します:
let numbers = vec![1, 2, 3, 4, 5];vec![]マクロは、開始時の値がわかっている場合に便利です。Rustは提供された値から自動的に型を決定できるため、型注釈は不要です。このベクタには5つの整数が含まれており、すぐに使用できます。
vec![] マクロは、同じ値で埋められたベクタを作成するための反復構文もサポートしています。vec![value; n] を使用して、それぞれが value に設定された n 個の要素を持つベクタを作成します。
let zeros = vec![0; 5]; // [0, 0, 0, 0, 0]
let tens = vec![10; 3]; // [10, 10, 10]これは、ユーザー入力などから実行時に決定される特定のサイズのベクトルを作成したい場合に特に便利です。
let n = 4;
let data = vec![10; n]; // [10, 10, 10, 10]どちらのアプローチも同じ型のベクトルを作成します。どちらを選択するかは、初期値があるか、それともベクトルを段階的に構築する予定かによって決まります。
チャレンジ
簡単ベクトルの要素数を表す数値が入力として与えられます。入力を読み取り、整数に変換し、その要素数を持つベクトルを作成してください。各要素の値は 10 とします。
要件:
- 入力を読み取り、整数に変換する
vec![]マクロを使用してベクトルを作成する- ベクトルには指定された数の要素が含まれている必要がある
- 各要素の値は
10である必要がある - 各要素を個別の行に出力する
入力: 要素数を表す単一の整数
出力: ベクトルの各要素を個別の行に出力する
自分で試してみよう
use std::io;
fn main() {
// 入力を読み込む
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let n: usize = input.trim().parse().expect("Invalid input");
// TODO: 以下にコードを記述してください
// n 個の要素を持ち、各要素の値が 10 であるベクタを作成する
// 各要素を個別の行に出力する
}このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。