C++におけるデータ構造ベクトル


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 arr 1:最も基本的な形式のベクトル宣言.
  • num arr 2:ベクトルサイズを決定しながら宣言する.
  • num arr 3:ベクトルのサイズを決定し、ベクトルの値を初期化する方法を決定します.
  • coppy arr 3(num arr 3):ベクトルをこのようにコピーできます.
    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:ベクトルサイズの関数がわかります.
  • sort:アルゴリズムに属する関数で、ベクトル内の要素を昇順または降順にソートできます.
    (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を配列として宣言すると、隣接するリストと同じ形式を使用できます.
    しゅつりょく