[Rust] 13. 벡터(Vector) 컬렉션 (컨테이너)
프로그래밍 언어/Rust2023. 2. 17. 01:12
벡터(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 |