본문 바로가기

Algorithm

[C++] Queue, Vector 사용법 정리

Queue

Queue란?

컴퓨터의 기본적인 자료 구조의 한가지로,

먼저 집어 넣은 데이터가 먼저 나오는 FIFO(First In First Out)구조로 저장하는 형식이다.

 

C++ 헤더파일 #include<queue>를 추가해준다.

 

Queue 기본함수에는

push, pop, front, back, empty, swap이 있다.

#include <iostream>
#include <queue>

using namespace std;

int main() {
	// queue<자료형> 변수명으로 큐를 선언한다.
	queue<int> q;
	// push를 하여 queue의 데이터를 추가한다.
	q.push(1);
	q.push(2);
	q.push(3);
	q.push(4);
	q.push(5);
	
	queue<int> second_q;
	second_q.push(6);
	second_q.push(7);
	second_q.push(8);
	second_q.push(9);
	second_q.push(10);
	
	cout << "front Queue : " << q.front() << '\n';
	//front은 제일 최상위 큐의 데이터를 반환한다.
	cout << "back Queue : " << q.back() << '\n';
	//back은 마지막 데이터를 반환한다.
	cout << "Queue Size : " << q.size() << '\n';
	//size는 큐의 현 사이즈를 반환하는 함수이다.
	cout << "Check Empty : " << (q.empty() ? "Yes" : "No") << '\n';
	//empty는 큐가 비어있는지 확인한다.

	cout << "Swap q, second_q" << '\n';
	second_q.swap(q);
	// swap을 사용하여 두개의 큐의 데이터를 바꾼다.
	cout << "second_q : " << '\n';

	//큐의 전체 데이터를 출력한다.
	while (!q.empty()) {
		cout << q.front() << " ";
		q.pop();
	}
}

Vector

Vector의 가장 큰 장점은 동적으로 원소를 추가할 수 있으며

크기가 자동으로 늘어난다는 점입니다. 쉽게 말해 크기가 가변적으로 변하는 배열이라고 할 수 있다.

Vector의 기본함수는

push_back, pop_back, size, begin, end 등이 있다.

 

#include <vector>
#include <iostream>

using namespace std;

int main() {
	// vector 선언
	vector<int> v;
    
    // vector 값 추가하기
	for (int i = 1; i < 6; i++)
		v.push_back(i);
        
	// vector 값 출력
	for (int j = 0; j < v.size(); j++)
		cout << v[j] << " ";

	cout << "\n";

	vector<int> v2;
	v2.push_back(1);
	v2.push_back(2);
	v2.push_back(3);
	v2.push_back(4);
	
	cout << "First vector value : " << v2.front() << "\n";
	cout << "Last vector value : " << v2.back() << "\n";
	cout << "Vector Size : " << v2.size() << "\n";
	
	v2.pop_back();
    // size를 이용한 vector 전체 값 출력
	for (vector <int>::size_type k = 0; k < v2.size(), k++;)
		cout << "Vector Value : " << v[k] << "\n";

}