[C++] 배열, 리스트, 벡터

Singery00·2024년 7월 28일
0

C++

목록 보기
4/7
post-thumbnail

개요

배열과 리스트, 벡터의 특징에 대해서 알아보자.

C++에서 사용되는 자료구조인 배열, 리스트, 벡터의 특징에 대해서 알아 보겠습니다.

참고 글


본론


배열

구조

배열은 메모리의 연속 공간에 값이 채워져 있는 형태의 자료구조입니다.

특징

  1. 인덱스를 사용하여 값에 바로 접근이 가능하다.
  2. 새로운 값 삽입, 삭제가 어렵다. 작업 시 해당 인덱스 주변 값을 이동하는 과정이 수반된다.
  3. 배열의 크기는 선언과 동시에 고정된다.

리스트

구조

값과 포인터를 묶은 노드를 포인터로 연결한 자료구조입니다.

특징

  1. 인덱스가 없어 값에 접근하려면 Head에서 순차적으로 접근해야 한다.
  2. 포인터로 연결되어 값의 삽입, 삭제가 용이하다.
  3. 크기가 가변적이다.
  4. 구조가 배열보다 복잡하다.

벡터

구조

벡터는 C++의 STL(Standard Template Library)의 자료구조 컨테이너 중 하나로, 쉽게 사용할 수 있도록 정의된 클래스입니다.

기존 배열과 같은 특징을 가지나, 단점을 보완한 동적 배열의 형태입니다.

특징

  1. 동적으로 원소를 추가할 수 있다. (크기가 고정적이지 않다.)
  2. 마지막 위치에 데이터 삽입, 삭제는 문제 없으나 이전 값에 있어서 배열과 동일하게 동작한다.
  3. 인덱스를 사용하여 데이터에 직접 접근할 수 있다.

사용법

// 선언
#include <vector> 

vector<int> V; // vector<자료형> 변수명;


// 삽입 연산
V.push_back(1);				// 마지막에 1 추가
V.insert(V.begin(), 1); 	// 맨 앞에 1 삽입
V.insert(A.begin() + 2, 1);	// index 2 위치에 1 삽입 

// 값 변경
V[2] = 5; // index 2의 값을 5로 변경

// 삭제 연산
V.pop_back();			// 마지막 값 삭제
V.erase(V.begin() + 2);	// index 2 위치값 삭제
V.clear();				// 모든 값 삭제

// 정보 가져오기
V.size();	// 데이터 개수
V.front();	// 처음 값
V.back();	// 마지막 값
V[2];		// index 2번 값
V.at(2);	// index 2번 값
V.begin();	// 첫 번째 데이터 위치
v.end();	// 마지막 데이터 다음 위치

마무리

각 자료구조 별 특징을 알아두고 상황에 적절한 것을 사용하자

profile
게임 개발자가 되어보자

0개의 댓글