안녕하세요! vecotr<pair<int,int>> map
254
작성한 질문수 1
면접을 보다가 면접질문 중
map 과 정렬된 vector<pair<>> 비교하여 설명 하시오 라는 문제가 나왔습니다.
답변을 map 는 레드블랙트리기반의 중복이 허용되지않고 key 로 오름차순 정렬되어있으며,
안에 데이터는 pair 로 되어있다. vector<pair<>> 연속적인 메모리 구조를 가지고 있으며
랜덤엑세스가 가능하며, sort 시 pair<> 의 first 값의로 기본 정렬한다. 라고 답변을 했습니다.
답변을 들으시더니 면접관님께서 "정렬된" 이라는 키워드를 중점으로 다시 생각해보라고 하셨는데
답변을 못했습니다.
어떤의도로 문제를 내신지 알 수 있을까요?
답변 1
0
조금 질문이 애매하긴 하네요.
정확한 의도는 질문자만 알겠지만, '정렬된'을 강조하는 것을 보니
이미 정렬된 상태의 vector vs map를 비교하라는 의도 같습니다.
탐색:
map은 레드블랙트리 기반이니 임의의 자료를 찾을 때 O(logN)
일반 vector라면 임의의 자료를 찾을 때 O(N)이겠지만
이미 정렬되어 있는 상태라면 이진 검색을 통해 O(logN)이 가능합니다.
map은 노드 기반인 반면 vector는 인접한 배열을 서칭하게 되니,
자료가 100% 더 이상 추가되지 않는다면
map보다 정렬된 vector을 이용하는 것도 괜찮을 수 있겠죠.
추가/삭제:
하지만 결국 데이터가 삭제 되거나 추가 되어야 한다면,
노드 기반의 map은 여전히 O(logN)에 빠른 처리가 가능하지만
vector의 경우 중간 삽입/삭제가 느리기 O(N)+@ 때문에 문제가 될 수 있습니다.
정렬된 vector vs map을 비교하라는 문제에서
sort 시 pair<> 의 first 값의로 기본 정렬한다
위 답변이 질문자 의도와는 달라 조금 아쉬웠을 것 같네요.
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
0
561
1
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
0
456
1
strcpy() 구현 관련 질문
0
543
1
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
0
477
1
클래스 타입의 포인터 질문합니다
0
560
1
입력값을 enum 값에 넣어주는거 이제 막혔나요?
0
504
1
템플릿 특수화 관련 질문
0
392
1
포인터 관련 질문합니다!
0
275
1
Unable to start assembler. Check your settings.
0
851
2
cpu선택
0
552
1
포인터 질문이 있습니다
0
335
1
20:35 에서 구조체 크기에 대한 질문입니다!
0
592
1
iterator 삭제관련
0
419
1
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
0
316
1
15 분 45초 대 질문
0
319
0
스택 프레임 질문합니다!
2
316
1
오른값 참조 in 게임
0
394
0
동적할당 질문이 있습니다
0
460
1
안녕하세요 메모리에 대해 질문드립니다.
0
314
1
함수객체 의 매개변수
0
370
1
복사생성자
0
441
1
main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요
0
431
1
포인터 실습 강의를 보고 궁금한게 있습니다.
0
360
1
스택 오버플로우
2
804
1





