벡터는 메모리 상에 서로 이웃하도록 모든 값을 집어넣는 단일 데이터 구조 안에 하나 이상의 값을 저장하도록 해줍니다. 벡터는 배열과 같이 같은 타입의 값만을 저장할 수 있습니다.
벡터의 선언은 다음과 같이 할 수 있습니다.
let v: Vec<i32> = Vec::new();
let mut v = Vec::new();
벡터를 선언하면서 아무 값도 저장하지 않았기 때문에 <>을 통해 어떤 데이터 타입을 저장할지 명시해주는 것이 좋습니다.
선언과 동시에 값을 지정한다면 다음과 같은 선언도 가능합니다.
let v = vec![1, 2, 3];
let v = vec![1, 2, 3, 4, 5];
vec.push(6); //벡터에 6을 저장
let third: &i32 = &v[2];
let third: Option<&i32> = v.get(2);
벡터에 값을 저장하는 것은 push 메소드로 가능합니다. 벡터에 접근하는 방법은 []와 get이 있는데 괄호를 사용한 접근은 해당 인덱스의 값을 반환해주지만 get으로 접근할 경우 Option으로 반환해줍니다.
반복문을 통한 사용 예시는 다음과 같습니다.
for x in xs.iter() { //단순 반복
println!("> {}", x);
}
for (i, x) in xs.iter().enumerate() { //인덱스, 값
println!("In position {} we have value {}", i, x);
}
for x in xs.iter_mut() { //변경 가능 반복 역참조로 접근
*x *= 3;
}
println!("Updated vector: {:?}", xs);
'Rust' 카테고리의 다른 글
[Rust] 테스트 (0) | 2022.04.29 |
---|---|
[Rust] 제네릭(Generic) (0) | 2022.04.28 |
[Rust] 해쉬맵 (hash map) (0) | 2022.04.26 |
[Rust] 문자열 (0) | 2022.04.25 |
[Rust] Option 과 Result (0) | 2022.04.25 |