[기초] 배열 다루기 (vector 로 원소 추가, 삭제, 수정) / C++

2023. 5. 3. 14:41·C++/기초
728x90
반응형

값 추가 / 삭제

C++에서 배열에 값을 추가하거나 삭제하는 방법은 크게 두 가지로 나뉩니다.

1. 동적 배열 (Dynamic Array)


동적 배열은 배열의 크기를 변경할 수 있는 배열입니다.
배열의 크기를 동적으로 할당 및 해제할 수 있습니다.
동적 배열은 C++에서는 vector 클래스를 이용하여 구현할 수 있습니다.

 

값 추가

  • push_back

값 삭제

  • pop_back : 마지막 요소 삭제
  • erase : 인덱스 번호 지정해서 삭제

 

#include <vector>
using namespace std;

vector<int> v; // int형 벡터 생성

// 벡터에 값을 추가하는 방법
v.push_back(1); 
v.push_back(2);
v.push_back(3);

// 벡터에서 값을 삭제하는 방법
v.pop_back(); // 마지막 요소 삭제
v.erase(v.begin() + 1); // 인덱스 1번 요소 삭제

 

2. 정적 배열 (Static Array)

정적 배열은 크기가 고정된 배열입니다.
배열의 크기를 변경할 수 없습니다.
값 추가나 삭제를 위해서는 새로운 배열을 생성하여 값을 복사해야 합니다.

int arr[3] = {1, 2, 3}; // int형 배열 생성

// 배열에 값을 추가하는 방법
int newArr[4];
for(int i=0; i<3; i++) {
  newArr[i] = arr[i];
}
newArr[3] = 4;

// 배열에서 값을 삭제하는 방법
int delArr[2];
for(int i=0; i<2; i++) {
  delArr[i] = arr[i];
}

 


값 수정


C++에서 배열의 특정 위치에 있는 값을 수정하려면, 해당 위치의 인덱스를 지정하고 새로운 값을 대입하면 됩니다.

예를 들어, 다음과 같은 int형 배열이 있다고 가정해봅시다.

 

int arr[5] = {1, 2, 3, 4, 5};
arr[2] = 10;

이렇게 하면 배열 arr의 3번째 위치의 값이 10으로 변경됩니다.

만약 배열의 인덱스 범위를 벗어난 위치에 값을 수정하려고 하면, 예를 들어 배열의 크기가 5인데 6번째 위치에 값을 대입하려고 하면, 미정의 동작(undefined behavior)이 발생하게 됩니다. 따라서 항상 배열의 인덱스 범위를 벗어나지 않도록 주의해야 합니다.

728x90
반응형

'C++ > 기초' 카테고리의 다른 글

[기초] 함수와 클래스 구현하기 / C++  (0) 2023.05.03
[기초] 해시 구현하기 (unordered) / C++  (0) 2023.05.03
[기초] 대소문자 변환 - 문자열 / C++  (0) 2023.05.03
[기초] 네임스페이스(namespace) 선언 /C++  (0) 2023.05.03
'C++/기초' 카테고리의 다른 글
  • [기초] 함수와 클래스 구현하기 / C++
  • [기초] 해시 구현하기 (unordered) / C++
  • [기초] 대소문자 변환 - 문자열 / C++
  • [기초] 네임스페이스(namespace) 선언 /C++
sillon
sillon
꾸준해지려고 합니다..
    반응형
  • sillon
    sillon coding
    sillon
  • 전체
    오늘
    어제
    • menu (614)
      • notice (2)
      • python (68)
        • 자료구조 & 알고리즘 (23)
        • 라이브러리 (19)
        • 기초 (8)
        • 자동화 (14)
        • 보안 (1)
      • coding test - python (301)
        • Programmers (166)
        • 백준 (76)
        • Code Tree (22)
        • 기본기 문제 (37)
      • coding test - C++ (5)
        • Programmers (4)
        • 백준 (1)
        • 기본기문제 (0)
      • 공부정리 (5)
        • 신호처리 시스템 (0)
        • Deep learnig & Machine lear.. (41)
        • Data Science (18)
        • Computer Vision (17)
        • NLP (40)
        • Dacon (2)
        • 모두를 위한 딥러닝 (강의 정리) (4)
        • 모두의 딥러닝 (교재 정리) (9)
        • 통계 (2)
      • HCI (23)
        • Haptics (7)
        • Graphics (11)
        • Arduino (4)
      • Project (21)
        • Web Project (1)
        • App Project (1)
        • Paper Project (1)
        • 캡스톤디자인2 (17)
        • etc (1)
      • OS (10)
        • Ubuntu (9)
        • Rasberry pi (1)
      • App & Web (9)
        • Android (7)
        • javascript (2)
      • C++ (5)
        • 기초 (5)
      • Cloud & SERVER (8)
        • Git (2)
        • Docker (1)
        • DB (4)
      • Paper (7)
        • NLP Paper review (6)
      • 데이터 분석 (0)
        • GIS (0)
      • daily (2)
        • 대학원 준비 (0)
      • 영어공부 (6)
        • job interview (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    programmers
    백준
    Python
    소수
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
sillon
[기초] 배열 다루기 (vector 로 원소 추가, 삭제, 수정) / C++
상단으로

티스토리툴바