자료구조_벡터(vector) in C++

Purple·2021년 9월 5일
0

1.벡터의 선언

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

int main() {
   vector<int> num_arr1;
   int n;
   cin >> n;
   vector<int> num_arr2(n+1);
   vector<int> num_arr3(n+1, 2147000000);
   vector<int> copy_arr3(num_arr3);

   for(int i=0; i<num_arr2.size(); i++) {
       cout << num_arr2[i] << " ";
   }
   cout << "\n";
   for(int i=0; i<num_arr3.size(); i++) {
       cout << num_arr3[i] << " ";
   }
   cout << "\n";
   for(int i=0; i<copy_arr3.size(); i++) {
       cout << copy_arr3[i] << " ";
   }
   return 0;
}
  • num_arr1 : 가장 기본적인 형태의 vector 선언이다.
  • num_arr2 : vector의 크기를 정함과 동시에 선언한다.
  • num_arr3 : vector의 크기를 정하면서, 해당 vector의 값을 무엇으로 초기화할지도 정한다.
  • coppy_arr3(num_arr3) : 이런식으로 vector를 복사할 수 있다.
    ex) n=5일때의 출력

2.벡터와 관련된 연산

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

int main() {
	vector<int> num_arr1;
	int n;
	cin >> n;
	for(int i=0; i<n; i++) {
		num_arr1.push_back(n-i);
	}
	for(int i=0; i<n; i++) {
		cout << num_arr1[i] << " ";
	}
	cout << "\n";
	sort(num_arr1.begin(), num_arr1.end());
	cout << "오름차순 정렬 : "; 
	for(int i=0; i<n; i++) {
		cout << num_arr1[i] << " ";
	}
	cout << "\n";
	sort(num_arr1.begin(), num_arr1.end(), greater<>());
	cout << "내림차순 정렬 : ";
	for(int i=0; i<n; i++) {
		cout << num_arr1[i] << " ";
	}
	cout << "\n";
	return 0;
}
  • push_back : vector에 원소를 삽입하는 함수이다.
  • size : 해당 vector의 크기를 알 수 있는 함수이다.
  • sort : algorithm에 속하는 함수로, vector의 원소를 오름차순 또는 내림차순으로 정렬할 수 있다.
    (default는 less<>()로 오름차순, greater<>()는 내림차순)

ex) n=5일때의 출력

3. 벡터의 배열(= 인접리스트)

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

int main() {
	vector<int> num_arr4[10];
	for(int i=0; i<10; i++) {
		num_arr4[i].push_back(i);
	}
	for(int i=0; i<10; i++) {
		cout << "num_arr4[" << i << "] is : ";
		for(int j=0; j<num_arr4[i].size(); j++) {
			cout << num_arr4[i][j] << " ";
		}
		cout << "\n";
	}
	return 0;
}

위와 같이, vector를 배열로 선언하면, 인접리스트와 같은 형태로 사용할 수 있다.

ex) 출력

profile
안녕하세요.

0개의 댓글