Rust

컬렉션

Vec<T>, String, HashMap, HashSet, 이터레이터, collect, 컬렉션의 소유권

20 면접 질문·
Junior
1

Vec<T>의 끝에 요소를 추가할 수 있는 메서드는 무엇입니까?

답변

push() 메서드는 벡터의 끝에 요소를 추가하여 크기를 1만큼 늘립니다. 이 연산은 분할 상환 O(1) 복잡도를 가집니다. 용량을 초과하면 벡터가 메모리를 재할당해야 할 수 있기 때문입니다. 여러 요소를 추가하려면 필요에 따라 extend()나 append()를 사용할 수 있습니다.

2

Rust에서 String과 &str의 주요 차이점은 무엇입니까?

답변

String은 힙에 저장되는 소유(owned) 타입으로 가변적이며 크기 조정이 가능합니다. &str은 UTF-8 시퀀스에 대한 불변 참조로, 흔히 'string slice'라고 불립니다. String은 자신의 데이터를 소유하며 수정할 수 있는 반면, &str은 기존 데이터를 소유하지 않고 빌립니다. 이 구분은 Rust의 메모리 관리에서 핵심적입니다.

3

Rust에서 새로운 빈 Vec<i32>를 어떻게 생성합니까?

답변

Vec::new()는 초기 할당 없이 빈 벡터를 생성합니다. vec![] 매크로로도 빈 벡터를 생성할 수 있지만, Vec::new()가 표준적인 명시적 메서드입니다. 제네릭 타입은 추론되거나 turbofish 구문 Vec::<i32>::new() 또는 타입 어노테이션으로 명시적으로 지정할 수 있습니다.

4

Vec<T>에서 get() 메서드는 무엇을 반환합니까?

5

평균 O(1) 접근으로 키와 값을 연결하려면 어떤 데이터 구조를 사용해야 하나요?

+17 면접 질문

다음 면접을 위해 Rust을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기