1. Binary Heap: 최대, 최소값을 찾을 때 많이 사용
//최대값let mut heap = BinaryHeap::new();// 값 추가 (자동 정렬됨 - 최대 힙)heap.push(10);heap.push(5);heap.push(20);
// 최대값 확인 (pop 없이)if let Some(max) = heap.peek() { println!("최대값: {}", max); // 20}
// 최대값 꺼내기 (pop은 값을 제거함)if let Some(max) = heap.pop() { println!("꺼낸 값: {}", max); // 20}
// 반복적으로 pop하면 큰 값부터 나옴while let Some(val) = heap.pop() { println!("{}", val);}
//최소 값let mut min_heap = BinaryHeap::new();min_heap.push(Reverse(10));min_heap.push(Reverse(1));min_heap.push(Reverse(5));
while let Some(Reverse(val)) = min_heap.pop() { println!("{}", val); // 1, 5, 10 순으로 출력}
//최대값
let mut heap = BinaryHeap::new();
// 값 추가 (자동 정렬됨 - 최대 힙)
heap.push(10);
heap.push(5);
heap.push(20);
// 최대값 확인 (pop 없이)
if let Some(max) = heap.peek() {
println!("최대값: {}", max); // 20
}
// 최대값 꺼내기 (pop은 값을 제거함)
if let Some(max) = heap.pop() {
println!("꺼낸 값: {}", max); // 20
}
// 반복적으로 pop하면 큰 값부터 나옴
while let Some(val) = heap.pop() {
println!("{}", val);
}
//최소 값
let mut min_heap = BinaryHeap::new();
min_heap.push(Reverse(10));
min_heap.push(Reverse(1));
min_heap.push(Reverse(5));
while let Some(Reverse(val)) = min_heap.pop() {
println!("{}", val); // 1, 5, 10 순으로 출력
}
2. String : 문자열은 벡터를 사용해 문자를 관리
// String은 UTF-8로 인코딩된 문자열을 저장한다.
fn main() {
// String은 String::new()로 생성할 수 있다.
let mut eng = String::new();
// String은 push_str() 메서드를 사용하여 문자열을 추가할 수 있다.
eng.push_str("hello");
// to_string() 메서드를 사용하여 &str을 String으로 변환할 수 있다.
let jpn = "こんにちは".to_string();
// String::from() 함수를 사용하여 &str을 String으로 변환할 수 있다.
let kor = String::from("안녕하세요");
println!("{} {} {}", eng, jpn, kor);
}
// format! 매크로로 포매팅된 문자열 만들수 있다.
fn main() {
let str = String::from("안녕");
let idx = 123;
// format! 매크로는 문자열을 포매팅하여 새로운 String을 생성한다.
// format! 매크로는 {}를 사용하여 포매팅할 위치를 지정한다.
let s = format!("{} {}", str, idx);
println!("{}", s);
}
// 문자열 내 문자들을 탐색하기
fn main() {
let txt = String::from("안녕하세요.");
// txt 내의 문자들을 순회한다.
for c in txt.chars() {
print!("{} ", c);
}
}
댓글 없음:
댓글 쓰기