プログラミング事前課題 その9 便利な配列 vector

最後はvectorです。
vectorは以前、解説した配列を少し便利にしたものです。

vectorの解説をする前に、普通の配列を少しおさらいすると

	int num[3] = {0, 1, 2};
	cout << num[0] << endl;		
	cout << num[1] << endl;		
	cout << num[2] << endl;		

とかこういうのでしたね。
実はこの配列には少し不便なところがあって
一度決めた配列の大きさをプログラムの途中で変更することができません。

つまり、一度

int num[3];

で配列を作るとnum配列には数値を3個までしか入れられないんですね。
後から4個したいとか思っても変更は不可です。

これに対してvectorは後から途中で配列の大きさを変えれます。
これむっちゃ便利です。
とりあえずむっちゃ便利だと覚えておいて貰うと良いです。

とりあえずコードを見て行きましょう。

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

int main() {
	// your code goes here
	
	vector<int> num;
	
	num.push_back(0);
	num.push_back(1);
	num.push_back(2);

	for(int i=0; i<num.size(); i=i+1){
		cout << num[i] << endl;
	}

	return 0;
}

結果は
0
1
2
と出力されると思います。

では、解説です。

の前に
忘れやすいんですがvector使う時は
2行目の

#include <iostream>
#include <vector>

のように
#include
を追加する必要があります。
これはvectorを使うための設定みたいなものです。


では、解説です。

	vector<int> num;

まず、はじめにここではint型のvectorをnumという名前で宣言してます。
宣言する内容がvectorになっただけで、通常の変数の宣言と同じですね。
普通の配列の宣言と違うのははじめに大きさを指定していませんね。
vectorの特徴の一つははじめに大きさを指定しなくても、
vectorの中に数値を入れたときに、
vectorが大きさを認識して、自動的に大きさを増やしてくれます。便利!

	num.push_back(0);

次に、ここです。
ここでは名前がnumのvectorに0を入れてます。
0を入れることで自動的に名前がnumのvectorの大きさが1増えてます。
その1つ下と2つ下行もそれぞれ、1と2を入れてます。

	for(int i=0; i<num.size(); i=i+1){
		cout << num[i] << endl;
	}

次にここです。いつものforループですね。
ただ条件のところが少し違います。

int i=0;

はいつもと同じですが、

i<num.size();

がいつもと違いますね。

実はnum.size()にはnumの大きさが入ってます。
なので、forループの条件のところにnum.size()を入れると
numの中身の数だけforループを回すという意味になります。
このnum.size()はnumに何か値が追加されて、
numの大きさが変わるたびに自動的に変わってくれるので
何かループをまわす際にはとりあえず回す回数の条件のところには
num.size()を入れておけばループを回す際の条件を気にしなくてよくなるので
便利ですね。

とまぁ、かなり駆け足で説明していきましたが
とりあえず、大きさを後から帰れる配列 vectorっていうのがあって
vectorに値を追加する方法は

vectorの名前.pushback(値) で

vectorの大きさは

vectorの名前.size() で

取れるとなんとなく覚えておいて貰えればOKです。
この辺また解説します。

以上、事前課題は今回で終わりです。
全部はできなかったとか、覚えられてないとこがあるとかは
人によってあるかもしれませんが、勉強会の最中にも解説はするんで
とりあえず、プログラミングにはこういう文法や変数、配列があるんだなと
思って貰えれば大丈夫です。

では、勉強会当日はよろしくお願いします。