반응형

 

벡터(Vector)란?

STL 컨테이너 라이브러리 중 하나인 Vector 벡터는 스택과 비슷한 구조를 가지고 있지만 원소를 참조하거나 중간에 값을 삽입하거나 삭제가 가능합니다. 

  • 벡터의 삽입과 삭제는 양쪽 끝(앞, 뒤)에서 이루어진다. 중간에서도 가능하다.
  • 자동으로 메모리가 할당되는 배열이다.
  • 배열기반이기 때문에 임의의 원소에 접근이 가능하다. 

벡터의 자료구조

 

벡터의 멤버 함수

  • v.front() : v의 첫번째 원소

  • v.back() : v의 마지막 원소

  • v.assign(n,x) : n개의 원소에 x값을 할당

  • v.at(index) : v의 index번째의 원소

  • v[index] : v의 index번째의 원소 (배열처럼 사용)

  • v.push_back(x) : 마지막 원소에 x값 삽입 

  • v.pop_back() : 마지막 원소 제거

  • v.begin() : v의 첫번째 원소를 가리키는 iterator 

  • v.end() : v의 마지막 원소의 다음을 가리키는 iterator 

  • v.reserve(n) : n개의 원소들을 동적할당

  • v.resize(n) : v의 크기를 n으로 지정

  • v.size() : v의 원소 개수를 리턴

  • v.capacity() : v에 할당된 공간의 크기를 리턴

  • v1.swap(v2) : v1과 v2의 원소, capacity를 모두 서로 바꿈

  • v.insert(n,x) : v의 n번째 위치에 x값을 삽입

  • v.erase(iterator) : iterator가 가리키는 v의 원소를 삭자한다.

  • v.empty() : v가 비어있으면 1, 비어있지않으면 0

 

 

예제 코드

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

int N;
vector<int> v;

void print_v()
{
	cout << " v의 원소 : ";
	for (int i = 0; i < v.size(); i++)
		cout << v[i] << " ";
}

int main()
{
	cout << "\n v에 1~3까지 삽입\n";
	v.push_back(1);
	v.push_back(2);
	v.push_back(3);
	print_v(); // 1 2 3

	cout << "\n\n v의 1번째 위치에 4 삽입\n";
	v.insert(v.begin()+1, 4);
	print_v(); // 1 4 2 3

	cout << "\n\n v의 마지막 원소 삭제\n";
	v.pop_back();
	print_v(); // 1 4 2

	cout << "\n\n v의 맨 뒤에 6 삽입\n";
	v.push_back(6);
	print_v(); // 1 4 2 6

	cout << "\n\n v의 원소 전체 clear!\n";
	v.clear();
	print_v(); // empty

}

실행결과

 

 

 

벡터를 통해서 2차원 배열 만들기

cocoon1787.tistory.com/201?category=831130

 

[C/C++] 2차원 배열 정렬하는 방법 (vector)

2차원 배열 혹은 벡터를 정렬하는 방법 int arr[3][2] = { {2,5} ,{4,3}, {7,1} }; sort(arr, arr + 3); 위와 같이 2차원 배열을 단순히 sort를 하면 아래와 같은 오류가 발생한다. 오류 C2075 '_Val': 배열..

cocoon1787.tistory.com

 

 

추천 연습 문제

cocoon1787.tistory.com/226?category=831127

 

[C/C++] 백준 10828번 - 스택

문제 정수를 저장하는 스택을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램을 작성하시오. 명령은 총 다섯 가지이다. push X: 정수 X를 스택에 넣는 연산이다. pop: 스택에서 가장 위

cocoon1787.tistory.com

 

반응형

+ Recent posts