Vector Container: 두 판 사이의 차이
기술노트
(컴퓨터 과학 용어 정리 - Vector Container 추가) 태그: 수동 되돌리기 |
편집 요약 없음 |
||
1번째 줄: | 1번째 줄: | ||
아래는 '''미디어위키 문법'''으로 다시 쉽게 풀어서 정리한 설명입니다. 초보자가 이해하기 쉽도록 간결하고 명료하게 구성했습니다. | |||
--- | |||
<syntaxhighlight> | = [C++] Vector 컨테이너 기초 = | ||
'''Vector'''는 C++에서 제공하는 자료구조로, 자동으로 메모리를 관리해 주는 동적 배열입니다. 일반적인 배열과 다르게 크기가 자동으로 늘어나거나 줄어들 수 있어서 매우 편리합니다. | |||
== Vector 특징 == | |||
* 자동으로 크기가 늘어나고 줄어듦 | |||
* 데이터의 추가와 제거가 쉬움 | |||
* 인덱스로 바로 접근 가능 (배열처럼 사용 가능) | |||
* 내부적으로 연속된 메모리 공간에 저장됨 | |||
== 기본 사용법 == | |||
먼저 '''<vector>''' 헤더 파일을 포함해야 합니다. | |||
<syntaxhighlight lang="cpp"> | |||
#include <vector> | #include <vector> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
다음과 같이 벡터를 선언합니다. (데이터 타입을 정해야 합니다) | |||
<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); | |||
|} | |||
=== size와 capacity의 차이점 === | |||
* '''size'''는 현재 실제 저장된 원소의 개수 | |||
* '''capacity'''는 실제 할당된 전체 메모리 공간 크기 | |||
== Vector를 사용한 간단한 예제 == | |||
다음은 간단한 벡터 사용 예제입니다. | |||
= | <syntaxhighlight lang="cpp"> | ||
#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; | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
< | 결과: | ||
<pre> | |||
1 | |||
2 | |||
3 | |||
</pre> | |||
== Iterator(반복자)를 이용한 출력 예제 == | |||
벡터를 더 간단히 순회할 수 있는 방법으로 반복자를 사용합니다. | |||
<syntaxhighlight> | <syntaxhighlight lang="cpp"> | ||
#include<iostream> | #include <iostream> | ||
#include<vector | #include <vector> | ||
using namespace std; | using namespace std; | ||
int main( | int main() { | ||
vector<int> v | vector<int> v = {1, 2, 3}; | ||
// 반복자(iterator)를 사용한 벡터 원소 출력 | |||
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> | ||
< | 결과: | ||
<pre> | |||
1 | |||
2 | |||
3 | |||
</pre> | |||
== 요약 정리 == | |||
* 벡터는 크기가 자동으로 관리되는 편리한 배열이다. | |||
* '''push_back()''', '''pop_back()'''으로 쉽게 데이터 추가/삭제 가능하다. | |||
* '''size()''', '''empty()''' 등을 통해 쉽게 상태를 확인할 수 있다. | |||
* 반복자(iterator)를 이용하면 원소 접근과 관리가 더욱 편리하다. | |||
==== | == 참고 자료 == | ||
* [https://blockdmask.tistory.com/70 Vector 자세한 설명] | |||
[[분류: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)를 이용하면 원소 접근과 관리가 더욱 편리하다.