러스트에서 2개의 벡터를 하나의 벡터로 합치는 방법에 대해서 알아보겠습니다.
1. append()를 이용한 방법
Vector의 append()
함수는 v1.append(v2)
처럼 사용할 수 있으며 v2
의 모든 요소들을 v1
으로 이동시킵니다.
- 2개 벡터의 모든 요소가 v1 벡터로 합쳐지며, v2는 Empty가 됨
- 2개 벡터가 모두 데이터 변경이 있기 때문에, 둘다 mut으로 선언
fn main() {
let mut vec1 = vec![1, 2, 3];
let mut vec2 = vec![4, 5, 6];
vec1.append(&mut vec2);
println!("vec1: {:?}", vec1);
println!("vec2: {:?}", vec2);
}
Output:
vec1: [1, 2, 3, 4, 5, 6]
vec2: []
2. extend()를 이용한 방법
Vector의 extend()
는 v1.extend(v2.iter())
처럼 사용하며, 인자로 전달된 iterator의 요소들이 v1에 추가됩니다.
- v1에 v2의 요소들이 추가됨
- v2의 요소는 사라지지 않고, 변함 없음
- v1만 변경되기 때문에 v1에만 mut 선언
fn main() {
let mut vec1 = vec![1, 2, 3];
let vec2 = vec![4, 5, 6];
vec1.extend(vec2.iter());
println!("vec1: {:?}", vec1);
println!("vec2: {:?}", vec2);
}
Output:
vec1: [1, 2, 3, 4, 5, 6]
vec2: [4, 5, 6]
3. concat()을 이용한 방법
아래와 같이 as_slice()
와 concat()
을 사용하여 벡터들을 하나의 벡터로 합칠 수 있습니다.
- vec1과 vec2의 데이터 변경은 없음, mut으로 선언 안해도 됨
concat()
으로 합쳐진 벡터가 리턴됨- 3개 이상의 벡터도 한번에
concat()
으로 합칠 수 있음
fn main() {
let vec1 = vec![1, 2, 3];
let vec2 = vec![4, 5, 6];
let combined_vec = [vec1.as_slice(), vec2.as_slice()].concat();
println!("vec1: {:?}", vec1);
println!("vec2: {:?}", vec2);
println!("combined: {:?}", combined_vec);
}
Output:
vec1: [1, 2, 3]
vec2: [4, 5, 6]
combined: [1, 2, 3, 4, 5, 6]
Loading script...
Related Posts
- Rust - String을 char 리스트(Vector)로 변환
- Rust - 문자가 대문자인지 소문자인지 확인
- Rust - String에서 줄바꿈(newline) 문자 제거 방법
- Rust - String 대문자, 소문자 변환
- Rust - 현재 시간 가져오기 (DateTime, chrono)
- Rust - 예외 처리 방법 (Exception handling)
- Rust - String.find()으로 문자열 Index 찾기
- Rust - match (Switch) 사용 방법
- Rust - Vector의 요소 제거 방법 (remove, retain, drain)
- Rust - String의 특정 Index 값 가져오기
- Rust - 문자열 뒤집기, 역순으로 변경
- Rust - String 객체에 문자열 추가하기
- Rust - sleep(), 몇 초 지연/대기 방법
- Rust - String을 Int, Float으로 변환
- Rust - Integer를 String으로 변환
- Rust - Float를 String으로 변환
- Rust - String 비교 방법 (==, !=, eq, ne)
- Rust - String을 str으로, str을 String으로 변환
- Rust - String 공백 제거 (trim, replace)
- Rust - 2개의 배열이 같은지 비교 (==, equals)
- Rust - 배열 길이 가져오기 (Array length)
- Rust - Vector를 배열로 변환 (vector to array)
- Rust - 배열의 최소, 최대 값 찾기 (min, max)
- Rust - 배열의 합계, 평균 (sum, average)
- Rust - 2개의 Vector가 같은지 비교 (==, equals)
- Rust - HashMap을 Vector로 변환
- Rust - Vector의 최소, 최대 값 찾기 (min, max)
- Rust - Vector의 합계, 평균 (sum, average)
- Rust - 벡터 길이 가져오기 (Vector length)
- Rust - 배열을 HashSet으로 변환
- Rust - 배열을 벡터로 변환하는 방법
- Rust - 배열(벡터) 모든 요소 출력
- Rust - 배열 나누기, 자르기 (split_at, slice)
- Rust - 2개 벡터 하나로 합치기
- Rust - HashSet을 Vector로 변환