vector 란?
- 동적 배열구조를 C++로 구현한 것 (가변적 배열)
- 맨 끝에서만 삽입, 삭제 가능
- 크기가 동적으로 변하고 메모리가 연속적
- 속도적인 측면에서는 느리다.
vector 사용법
헤더
- #include<vector>
- 선언 방법
vector<데이터 타입> 벡터 이름; |
vector<데이터 타입> 벡터 이름(크기); |
vector<데이터 타입> 벡터 이름(크기, 초기화 상수); |
- 삽입, 삭제
v.push_back(데이터); | 데이터를 맨 끝에 삽입 |
v.pop_back(); | 데이터 맨 끝을 삭제 |
v.insert(데이터위치, 데이터); | 삽입하고 싶은 위치에 데이터 삽입 |
- 원소 참조
v[i]; | i 번째 원소 참조 |
v.at(); | i 번째 원소 참조 |
v.front(); | 벡터의 첫번째 원소를 참조 |
v.back(); | 벡터의 마지막 원소를 참조 |
v.begin(); | iterator 사용시 벡터의 첫번째 데이터 위치를 가르킴 |
v.end(); | iterator 사용시 벡터의 마지막 데이터 위치를 가르킴 |
- 크기 변경
v.size() | 벡터 원소 갯수를 반환 |
v.capacity() | 할당된 벡터의 원소 갯수 반환 |
v.resize(n) | 벡터를 n 크기로 변경 |
v.resize(n, m) | 벡터를 n 크기로 변경 후 데이터를 m으로 초기화 |
v.empty() | 벡터가 비어 있으면 true 반환 아닐 시 false 반환 |
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> v;
vector<int> v1(10);
vector<int> v2(10, 3);
for (auto i : v1)
cout << i<<", ";
cout << endl;
/*for (auto i : v2)
cout << i << ", ";*/
cout << "삽입 삭제" << endl;
v.push_back(4);
v.push_back(5);
v.push_back(3);
cout << "v[1]: ";
cout << v[1] << endl;
cout << "v.at(1): ";
cout << v.at(1) << endl;
cout << "v.front(): ";
cout << v.front() << endl;
cout << "v.back(): ";
cout << v.back() << endl;
while (!v.empty())
{
cout << v.back() << endl;
v.pop_back();
}
vector<int>::iterator iter;
for (iter = v2.begin(); iter < v2.end(); iter++)
cout << *iter;
}
'프로그래밍 공부 > STL' 카테고리의 다른 글
문자열 처리함수 c_str() (0) | 2022.02.27 |
---|---|
C++ STL set & multiset (0) | 2022.02.17 |
C++ STL deque란? (0) | 2022.02.17 |
C++ STL list 란? (0) | 2022.02.15 |
C++ STL 이란? (0) | 2022.02.12 |