info8995 님의 블로그

16일차(vector) 본문

TIL(Today I Learned)/C++

16일차(vector)

info8995 2025. 1. 8. 20:40

C++의 vector는 가변 크기 배열을 제공하는 동적 컨테이너입니다. 데이터의 삽입, 삭제 및 크기 조절을 쉽게 처리할 수 있어 유연성이 높은 자료구조입니다. 

1.선언과 초기화

2.주요 메서드와 함수

  • 삽입과 삭제
  • push_back(value): 끝에 요소 추가
  • pop_back(): 끝 요소 삭제
  • insert(pos,value):특정 위치에 삽입
  • erase(pos):특정 위치 삭제
  • clear(): 모든 요소 삭제

크기 관련

  • size(): 현재 벡터 크기 반환
  • capacity(): 메모리 할당 크기 반환
  • resize(n):크기 조정
  • empty():비어 있는지 확인

3. 반복자

  • begin(): 첫 번째 요소
  • end(): 마지막 다음 요소
  • rbegin(),rend(): 역방향 반복자

4. 장점과 주의점

장점

  1. 크기가 동적으로 변함.
  2. 유용한 함수와 메서드 제공.
  3. 배열처럼 인덱스로 접근 가능.

주의점

  1. 크기 변경시 재할당 비용 발생.
  2. 메모리 오버헤드가 정적 
 

다음은 벡터의 원소를 확인하는 방법에 대한 설명과 v.at(i)와 v[i]의 차이점을 추가한 내용입니다.


5. 원소 접근

벡터의 원소를 확인하거나 접근하는 방법은 다음과 같습니다.

  • v[i]: 지정한 인덱스 i의 원소를 반환합니다. 범위를 초과하는 경우 런타임 에러를 발생시키지 않으며, 정의되지 않은 동작을 초래할 수 있습니다.
  • v.at(i): 지정한 인덱스 i의 원소를 반환합니다. 범위를 초과하면 예외(std::out_of_range)가 발생하므로, 안전한 접근 방식입니다.

요약

  • v[i]는 빠르지만, 범위를 초과하면 위험할 수 있습니다.
  • v.at(i)는 약간 느릴 수 있으나, 안전하고 예외 처리가 가능합니다.

 

오름차순 정력

C++에서 std::sort를 사용하면 오름차순 정렬을 할 수 있습니다. 

sort함수를 사용할려면 헤더파일에 #include <algorithm>을 추가해야 합니다.