값 추가 / 삭제
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)이 발생하게 됩니다. 따라서 항상 배열의 인덱스 범위를 벗어나지 않도록 주의해야 합니다.
'C++ > 기초' 카테고리의 다른 글
[기초] 함수와 클래스 구현하기 / C++ (0) | 2023.05.03 |
---|---|
[기초] 해시 구현하기 (unordered) / C++ (0) | 2023.05.03 |
[기초] 대소문자 변환 - 문자열 / C++ (0) | 2023.05.03 |
[기초] 네임스페이스(namespace) 선언 /C++ (0) | 2023.05.03 |