본문 바로가기

Rust

[Rust] 벡터

벡터는 메모리 상에 서로 이웃하도록 모든 값을 집어넣는 단일 데이터 구조 안에 하나 이상의 값을 저장하도록 해줍니다. 벡터는 배열과 같이 같은 타입의 값만을 저장할 수 있습니다.

 

벡터의 선언은 다음과 같이 할 수 있습니다.

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