Thinking Different




벡터(Vector)

벡터는 자동으로 메모리가 할당되어 관리되는 크기가 가변적으로 변하는 배열입니다.

크기가 고정인 배열과는 다르게 사용자가 동적으로 원소(데이터)를 추가하거나 삭제할 수 있습니다. 그러나 추가 삭제시에 메모리 재할당이 발생되므로 부하가 발생될 수 있다는 단점이 있습니다.

 

 

벡터 생성

// vector 동적 생성
let 변수명: Vec<자료형> = Vec::new();

// 원소를 포함하여 vector 생성
let 변수명 = vec![값, ...];

// 값을 추가 삭제할 수 있는 벡터 생성 mut 를 붙임
let mut 변수명 = Vec::new();

 

 

벡터 생성 및 원소 추가 삭제 예제

fn main()
{
    // 벡터 생성
    let mut v = Vec::new();
    
    // 벡터 원소 추가 0 ~ 4 까지
    for i in 0..5
    {
        v.push(i);
    }
    
    // 벡터 전체 값 출력
    for i in &v 
    {
        println!("{}", i);
    }
    
    // 벡터 값 2개 삭제
    v.pop();
    v.pop();
    
    // 벡터 전체 값 출력
    for i in &v 
    {
        println!("{}", i);
    }
}

// 출력 결과
0
1
2
3
4
0
1
2

 

 

 

벡터 사용 예제 (추가, 삭제, 출력, 인덱스 접근)

fn main()
{
    // 가변 벡터 생성
    let mut v = vec![1, 2, 3];
    
    // 벡터 인덱스 값 출력
    println!("{}", &v[0]);
    
    // 벡터 인덱스 값 출력 option<T> 사용
    println!("{:?}", v.get(1));
    
    // vector 값 추가
    v.push(4);
    v.push(5);
    
    // vector 값 1개 삭제
    v.pop();

    // 벡터 전체 값 출력
    for i in &v 
    {
        println!("{}", i);
    }
}


// 출력 결과
1
Some(2)
1
2
3
4

'프로그래밍 언어 > Rust' 카테고리의 다른 글

[Rust] 15. Hashmap (해쉬맵)  (0) 2023.02.19
[Rust] 14. String (문자열)  (0) 2023.02.18
[Rust] 12. 모듈화 (mod)  (0) 2023.02.15
[Rust] 11. 열거형(enum)  (0) 2023.02.14
[Rust] 10. 구조체(Struct)  (0) 2023.02.10