Vector Container: 두 판 사이의 차이

기술노트
(컴퓨터 과학 용어 정리 - Vector Container 추가)
태그: 수동 되돌리기
편집 요약 없음
1번째 줄: 1번째 줄:
== [C++] Vector Container ==
아래는 '''미디어위키 문법'''으로 다시 쉽게 풀어서 정리한 설명입니다. 초보자가 이해하기 쉽도록 간결하고 명료하게 구성했습니다.


<br>
---


<syntaxhighlight>cpp
= [C++] Vector 컨테이너 기초 =
 
'''Vector'''는 C++에서 제공하는 자료구조로, 자동으로 메모리를 관리해 주는 동적 배열입니다. 일반적인 배열과 다르게 크기가 자동으로 늘어나거나 줄어들 수 있어서 매우 편리합니다.
 
== Vector 특징 ==
* 자동으로 크기가 늘어나고 줄어듦
* 데이터의 추가와 제거가 쉬움
* 인덱스로 바로 접근 가능 (배열처럼 사용 가능)
* 내부적으로 연속된 메모리 공간에 저장됨
 
== 기본 사용법 ==
먼저 '''<vector>''' 헤더 파일을 포함해야 합니다.
 
<syntaxhighlight lang="cpp">
#include <vector>
#include <vector>
</syntaxhighlight>
</syntaxhighlight>


자동으로 메모리를 할당해주는 Cpp 라이브러리
다음과 같이 벡터를 선언합니다. (데이터 타입을 정해야 합니다)
 
<syntaxhighlight lang="cpp">
vector<int> v;        // 정수형 벡터 생성
vector<string> s;      // 문자열 벡터 생성
</syntaxhighlight>
 
== 주요 기능 (함수) ==
벡터에서 자주 사용하는 함수는 다음과 같습니다.
 
{| class="wikitable"
! 함수 !! 설명 !! 사용법 예시
|-
| push_back() || 벡터 끝에 원소 추가 || v.push_back(10);
|-
| pop_back() || 벡터 끝의 원소 제거 || v.pop_back();
|-
| at() || 특정 위치 원소 접근 (안전한 방법, 범위 체크 있음) || v.at(0);
|-
| [ ] || 특정 위치 원소 접근 (빠른 방법, 범위 체크 없음) || v[0];
|-
| front() || 첫 번째 원소 참조 || v.front();
|-
| back() || 마지막 원소 참조 || v.back();
|-
| clear() || 벡터의 모든 원소 삭제 || v.clear();
|-
| size() || 원소 개수 확인 || v.size();
|-
| capacity() || 할당된 메모리 크기 확인 || v.capacity();
|-
| empty() || 벡터가 비어있는지 확인 (true 또는 false 반환) || v.empty();
|-
| resize(n) || 벡터 크기를 n으로 변경 (크기를 늘릴 경우 기본값으로 채움) || v.resize(5);
|-
| assign(n, value) || 벡터를 n개의 원소로 채우고 각 원소를 value로 설정 || v.assign(3, 7);
|}


데이터 타입을 정할 수 있으며, push pop은 스택과 유사한 방식이다.
=== size와 capacity의 차이점 ===
* '''size'''는 현재 실제 저장된 원소의 개수
* '''capacity'''는 실제 할당된 전체 메모리 공간 크기


<br>
== Vector를 사용한 간단한 예제 ==
다음은 간단한 벡터 사용 예제입니다.


=== 생성 ===
<syntaxhighlight lang="cpp">
#include <iostream>
#include <vector>
using namespace std;


* `vector<"Type"> v;`
int main() {
* `vector<"Type"> v2(v); ` : v2에 v 복사
    vector<int> v; // 정수형 벡터 생성


==== Function ====
    v.push_back(1); // 벡터에 1 추가
    v.push_back(2); // 벡터에 2 추가
    v.push_back(3); // 벡터에 3 추가


* `v.assign(5, 2);` : 2 값으로 5개 원소 할당
    // 벡터의 모든 원소 출력 (for문 사용)
* `v.at(index);` : index번째 원소 참조 (범위 점검 o)
    for(int i = 0; i < v.size(); i++) {
* `v[index];` : index번째 원소 참조 (범위 점검 x)
        cout << v[i] << endl;
* `v.front(); v.back();` : 첫번째와 마지막 원소 참조
    }
* `v.clear();` : 모든 원소 제거 (메모리는 유지)
* `v.push_back(data); v.pop_back(data);` : 마지막 원소 뒤에 data 삽입, 마지막 원소 제거
* `v.begin(); v.end();` : 첫번째 원소, 마지막의 다음을 가리킴 (iterator 필요)
* `v.resize(n);` : n으로 크기 변경
* `v.size();` : vector 원소 개수 리턴
* `v.capacity();` : 할당된 공간 크기 리턴
* `v.empty();` : 비어있는 지 여부 확인 (true, false)


<syntaxhighlight>
    return 0;
capacity : 할당된 메모리 크기
}
size : 할당된 메모리 원소 개수
</syntaxhighlight>
</syntaxhighlight>


<br>
결과:
<pre>
1
2
3
</pre>
 
== Iterator(반복자)를 이용한 출력 예제 ==
벡터를 더 간단히 순회할 수 있는 방법으로 반복자를 사용합니다.


<syntaxhighlight>cpp
<syntaxhighlight lang="cpp">
#include<iostream>
#include <iostream>
#include<vector>
#include <vector>
#include<string>
using namespace std;
using namespace std;


int main(void) {
int main() {
     vector<int> v;
     vector<int> v = {1, 2, 3};
   
 
    v.push_back(1);
     // 반복자(iterator)를 사용한 벡터 원소 출력
    v.push_back(2);
     v.push_back(3);
   
     vector<int>::iterator iter;
     vector<int>::iterator iter;
     for(iter = v.begin(); iter != v.end(); iter++) {
     for(iter = v.begin(); iter != v.end(); iter++) {
         cout << *iter << endl;
         cout << *iter << endl;
     }
     }
    return 0;
}
}
</syntaxhighlight>
</syntaxhighlight>


<br>
결과:
<pre>
1
2
3
</pre>


<br>
== 요약 정리 ==
* 벡터는 크기가 자동으로 관리되는 편리한 배열이다.
* '''push_back()''', '''pop_back()'''으로 쉽게 데이터 추가/삭제 가능하다.
* '''size()''', '''empty()''' 등을 통해 쉽게 상태를 확인할 수 있다.
* 반복자(iterator)를 이용하면 원소 접근과 관리가 더욱 편리하다.


===== [참고 자료] =====
== 참고 자료 ==
* [https://blockdmask.tistory.com/70 Vector 자세한 설명]


* [링크](https://blockdmask.tistory.com/70)
[[분류:C++]]
[[분류:프로그래밍]]

2025년 4월 26일 (토) 13:06 판

아래는 미디어위키 문법으로 다시 쉽게 풀어서 정리한 설명입니다. 초보자가 이해하기 쉽도록 간결하고 명료하게 구성했습니다.

---

[C++] Vector 컨테이너 기초

Vector는 C++에서 제공하는 자료구조로, 자동으로 메모리를 관리해 주는 동적 배열입니다. 일반적인 배열과 다르게 크기가 자동으로 늘어나거나 줄어들 수 있어서 매우 편리합니다.

Vector 특징

  • 자동으로 크기가 늘어나고 줄어듦
  • 데이터의 추가와 제거가 쉬움
  • 인덱스로 바로 접근 가능 (배열처럼 사용 가능)
  • 내부적으로 연속된 메모리 공간에 저장됨

기본 사용법

먼저 <vector> 헤더 파일을 포함해야 합니다.

#include <vector>

다음과 같이 벡터를 선언합니다. (데이터 타입을 정해야 합니다)

vector<int> v;         // 정수형 벡터 생성
vector<string> s;      // 문자열 벡터 생성

주요 기능 (함수)

벡터에서 자주 사용하는 함수는 다음과 같습니다.

함수 설명 사용법 예시
push_back() 벡터 끝에 원소 추가 v.push_back(10);
pop_back() 벡터 끝의 원소 제거 v.pop_back();
at() 특정 위치 원소 접근 (안전한 방법, 범위 체크 있음) v.at(0);
[ ] 특정 위치 원소 접근 (빠른 방법, 범위 체크 없음) v[0];
front() 첫 번째 원소 참조 v.front();
back() 마지막 원소 참조 v.back();
clear() 벡터의 모든 원소 삭제 v.clear();
size() 원소 개수 확인 v.size();
capacity() 할당된 메모리 크기 확인 v.capacity();
empty() 벡터가 비어있는지 확인 (true 또는 false 반환) v.empty();
resize(n) 벡터 크기를 n으로 변경 (크기를 늘릴 경우 기본값으로 채움) v.resize(5);
assign(n, value) 벡터를 n개의 원소로 채우고 각 원소를 value로 설정 v.assign(3, 7);

size와 capacity의 차이점

  • size는 현재 실제 저장된 원소의 개수
  • capacity는 실제 할당된 전체 메모리 공간 크기

Vector를 사용한 간단한 예제

다음은 간단한 벡터 사용 예제입니다.

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> v;  // 정수형 벡터 생성

    v.push_back(1); // 벡터에 1 추가
    v.push_back(2); // 벡터에 2 추가
    v.push_back(3); // 벡터에 3 추가

    // 벡터의 모든 원소 출력 (for문 사용)
    for(int i = 0; i < v.size(); i++) {
        cout << v[i] << endl;
    }

    return 0;
}

결과:

1
2
3

Iterator(반복자)를 이용한 출력 예제

벡터를 더 간단히 순회할 수 있는 방법으로 반복자를 사용합니다.

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> v = {1, 2, 3};

    // 반복자(iterator)를 사용한 벡터 원소 출력
    vector<int>::iterator iter;
    for(iter = v.begin(); iter != v.end(); iter++) {
        cout << *iter << endl;
    }

    return 0;
}

결과:

1
2
3

요약 정리

  • 벡터는 크기가 자동으로 관리되는 편리한 배열이다.
  • push_back(), pop_back()으로 쉽게 데이터 추가/삭제 가능하다.
  • size(), empty() 등을 통해 쉽게 상태를 확인할 수 있다.
  • 반복자(iterator)를 이용하면 원소 접근과 관리가 더욱 편리하다.

참고 자료