러스트에서 Vector의 요소들 중에 최소 값과 최대 값을 찾는 방법을 소개합니다.
1. min(), max()를 이용한 방법
iter()
는 벡터의 iterator를 가져오며, min()
, max()
는 Iterator의 요소들 중에서 최소 값과 최대 값을 찾아서 Option 타입 객체로 리턴합니다.
Vector가 Empty인 경우, 최소 값과 최대 값이 없기 때문에 match를 사용하여 Option에 대한 예외처리가 필요합니다.
아래와 같이 match문을 사용하여 Option에 저장된 min, max 값을 가져올 수 있습니다.
fn main() {
let vec = vec![4, 5, 9, 2, 8, 7, 3, 1, 6];
let min = vec.iter().min();
let max = vec.iter().max();
match (min, max) {
(Some(min_val), Some(max_val)) => println!("min: {}, max: {}", min_val, max_val),
_ => println!("Array is empty"),
}
}
Output:
min: 1, max: 9
2. fold()를 이용한 방법
fold()
를 사용하여 벡터의 모든 요소들을 순회하면서, 최소 값과 최대 값을 계산하여 min_val
, max_val
에 저장하고 마지막에 min
, max
변수로 리턴합니다.
fn main() {
let vec = vec![4, 5, 9, 2, 8, 7, 3, 1, 6];
let (min, max) = vec.iter().fold((vec[0], vec[0]), |(min_val, max_val), &val| (min_val.min(val), max_val.max(val)));
println!("min: {}, max: {}", min, max);
}
Output:
min: 1, max: 9
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로 변환