17.2 Vectors

벡터는 크기 조정이 가능한 배열이다. 조각처럼, 그들의 사이즈는 컴파일 시에 알 수 없지만, 언제든 증가시키거나 줄일 수 있다. 벡터는 3단어로 표현할 수 있다: 데이터에 대한 포인터, 그 길이와 용량. 용량은 벡터를 위해 얼마나 많은 매모리가 예약될 수 있는지를 나타낸다. 벡터는 용량보다 작은 길이만큼 증가될 수 있다. 이 임계 값을 초과해야하는 경우, 벡터는 더 큰 용량으로 재할당되게 된다.

fn main() {
    // 반복자를 수집해서 벡터로 만들 수 있다. 
    let collected_iterator: Vec<i32> = (0..10).collect();
    println!("Collected (0..10) into: {:?}", collected_iterator);

    // The `vec!` 매크로는 벡터를 초기화 하는데 사용할 수 있다.
    let mut xs = vec![1i32, 2, 3];
    println!("Initial vector: {:?}", xs);

    // 새 요소를 벡터의 끝에 삽입한다.
    println!("Push 4 into the vector");
    xs.push(4);
    println!("Vector: {:?}", xs);

    // 에러! 불가변성 벡터는 증가될 수 없다.
    collected_iterator.push(0);
    // FIXME ^ 이 라인을 주석처리 하세요.

    // The `len` method yields 는 현재 벡터 사이즈를 산출한다.
    println!("Vector size: {}", xs.len());

    // 대괄호를 사용하여 색인을 사용한다. (색인은 0부터 시작)
    println!("Second element: {}", xs[1]);

    // `pop` 은 마지막 요소를 제거하고 이를 반환한다.
    println!("Pop last element: {:?}", xs.pop());

    // 색인이 범위에서 벗어나면 panic을 발생한다.
    println!("Fourth element: {}", xs[3]);
}

Vec의 메소드는 아래에서 더 찾을 수 있다. std::vec module

results matching ""

    No results matching ""