• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

vector형 array 사용성. 단점

21.02.09 17:23 작성 조회수 207

0

vector 로 array 를 사용하니 

1. 사이즈를 안 정해줘도 된다.

2. 메모리 누수가 없다.

3. 각종 함수와 연동해서 쓸 수 있다.

 등등 여러가지 장점이 있는 것을 알았습니다.

본론으로 가서...

전쟁 때 탱크 있는데 굳이 짱돌들고 싸울 필요 없다고 생각합니다

제가 궁금한건

현업에서도  vector 로 array를 사용을 많이 하나요?

(이거 하나면 거의 만능처럼 여겨집니다.)

혹시 현업에서 vector를 많이 안 쓴다면 vector array의 단점이나 기피되는 이유를 알 수 있을까요?

답변 2

·

답변을 작성해보세요.

4

안소님의 프로필

안소

2021.02.12

생각나서 더 추가로 말씀드리자면

vector는 동적 배열로 구현된 컨테이너입니다. 그냥 동적 배열이라고 보시면 됩니다.

vector의 단점은 자료구조에서 배우는 그 동적 배열의 단점과 같다고 생각해보시면 될 것 같아요.

동적 배열의 단점으론 추가/삭제 연산이 좀 번거롭다는게 있겠습니다. 중간에 하나 추가하거나 삭제할 때마다 뒤에 있는 것들을 전부 전부 한칸씩 땡겨오거나 뒤로 한칸씩 밀어주거나 해야하니까요! (이게 모두 다 배열 원소들은 메모리내에서 연속적으로 자리 잡아야 한다는 그런 특성 때문에 그런 것입니다.)

그리고 아무래도 vector도 동적으로 생성되는 배열이다보니 컴파일 타임에 메모리가 결정되어 프로그램 시작 전부터 고정적인 정적배열보단 쬐끔 느릴 수 있다는거..? (그렇지만 정적배열은 삽입 삭제 배열사이즈변경이 안된다는 크나큰 단점이 있어서..) 

그래서 아주 배열의 크기가 아주아주 커야 하는데 삽입/삭제 연산도 많이 할 예정이다! 싶으면 vector보단 연결리스트인 list 같이 메모리 연속성을 지키지 않는 자료구조를 쓰는 것이 좋겠습니다. 이렇게 자료구조 종류마다 다 장단점이 있으니 경우에 따라 선택하여 사용하시면 되요. (그럼에도 불구하고 vector는 많이 쓰입니다 ㅎㅎ)

2

안소님의 프로필

안소

2021.02.09

많이 씁니다! (그래서 면접에서도 vector 같은 STL에 대해 많이 물어봅니다)