
컬렉션
Vec<T>, String, HashMap, HashSet, 이터레이터, collect, 컬렉션의 소유권
20 면접 질문·
Junior
1Vec<T>의 끝에 요소를 추가할 수 있는 메서드는 무엇입니까?
1
Vec<T>의 끝에 요소를 추가할 수 있는 메서드는 무엇입니까?
답변
push() 메서드는 벡터의 끝에 요소를 추가하여 크기를 1만큼 늘립니다. 이 연산은 분할 상환 O(1) 복잡도를 가집니다. 용량을 초과하면 벡터가 메모리를 재할당해야 할 수 있기 때문입니다. 여러 요소를 추가하려면 필요에 따라 extend()나 append()를 사용할 수 있습니다.
2Rust에서 String과 &str의 주요 차이점은 무엇입니까?
2
Rust에서 String과 &str의 주요 차이점은 무엇입니까?
답변
String은 힙에 저장되는 소유(owned) 타입으로 가변적이며 크기 조정이 가능합니다. &str은 UTF-8 시퀀스에 대한 불변 참조로, 흔히 'string slice'라고 불립니다. String은 자신의 데이터를 소유하며 수정할 수 있는 반면, &str은 기존 데이터를 소유하지 않고 빌립니다. 이 구분은 Rust의 메모리 관리에서 핵심적입니다.
3Rust에서 새로운 빈 Vec<i32>를 어떻게 생성합니까?
3
Rust에서 새로운 빈 Vec<i32>를 어떻게 생성합니까?
답변
Vec::new()는 초기 할당 없이 빈 벡터를 생성합니다. vec![] 매크로로도 빈 벡터를 생성할 수 있지만, Vec::new()가 표준적인 명시적 메서드입니다. 제네릭 타입은 추론되거나 turbofish 구문 Vec::<i32>::new() 또는 타입 어노테이션으로 명시적으로 지정할 수 있습니다.
4
Vec<T>에서 get() 메서드는 무엇을 반환합니까?
5
평균 O(1) 접근으로 키와 값을 연결하려면 어떤 데이터 구조를 사용해야 하나요?
+17 면접 질문
기타 Rust 면접 주제
Rust 기초
Junior
25개 질문Ownership & Borrowing
Junior
22개 질문Structs & Enums
Junior
20개 질문에러 처리
Junior
18개 질문모듈과 패키지
Junior
18개 질문Traits
Mid-Level
22개 질문Generics
Mid-Level
20개 질문Lifetimes
Mid-Level
20개 질문Iterators & Closures
Mid-Level
22개 질문Smart Pointers
Mid-Level
22개 질문Concurrency Basics
Mid-Level
20개 질문async/await
Mid-Level
22개 질문Testing
Mid-Level
18개 질문Cargo & Ecosystem
Mid-Level
18개 질문Pattern Matching
Mid-Level
18개 질문매크로
Mid-Level
20개 질문Serde와 직렬화
Mid-Level
20개 질문Unsafe Rust
Senior
20개 질문고급 트레잇
Senior
22개 질문고급 lifetime
Senior
20개 질문Type System
Senior
20개 질문Tokio & Async I/O
Senior
22개 질문성능 최적화
Senior
20개 질문Memory Management
Senior
20개 질문Web Frameworks
Senior
22개 질문Database Integration
Senior
20개 질문Rust 디자인 패턴
Senior
20개 질문