あるごりずむの入門の入門

完全に老害になっているくだです。
特に記事にできるようなこともないのですが, 書かないと後が怖いのでどこにでも転がっているようなことを書きます。

具体的には, シス研でアルゴリズム講座を始めるのでその入門について書いていこうと思います。
とは言っても僕はアルゴリズム全然わからないマンなので入門の入門といったところしか話せませんのであしからず。

アルゴリズムの入門の入門ということでvectorについて話していこうと思います。
vectorはアルゴリズム, というよりC++でプログラムを書くときに使えると非常に便利なものです。

vectorとは

vectorは動的配列をテンプレートクラスで表現したものです。 動的配列なので、その要素数は必要なときに自動的に変更されます。 通常の配列は、宣言時に要素数を指定しなければなりませんが、vector を使えばその必要がなくなります。

要素数が自動的に変更されると書きましたが、vector はある程度の個数分の領域を事前に一括で確保しておき、 それが足りなくなったとき(新たに要素を追加しようとして、足りなかったとき)に、領域を拡張するのです。
http://ppp-lab.sakura.ne.jp/cpp/library/002.html

ふむ..
簡単に言えばC言語で標準の配列は作ってから大きさを変えられなかったけどそれを自由に変えられるようにしたものだよ!ってことです(たぶん)

vectorの使い方

vectorが何者か分かったところで早速使ってみましょう。

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

int main(){
	vector<int> intv(5); // vector配列を作る

	for(int i=0; i<5; i++){ 
		cin >> intv(i); // 要素の代入
	}

	for(int i=0; i<5; i++){
		cout << intv.at(i) << endl; // 要素の表示
	}

	return 0;

}

上のコードは要素数が5つのvector配列を作って, それに代入したり表示したりするだけのプログラムです。
簡単に解説するとvectorを使うために上のほうでincludeしています。
で6行目で実際にvector配列を作っています。<>の中身は型名, 次に配列名を書いて, 最後に()で要素数を指定するだけです。
9行目と13行目なのですが, vector配列の要素をほにゃほにゃするときは”配列名.at(要素番号)“とするのがいいっぽいです。ですが, 普通の配列と同じ”配列名[要素番号]“でも同じことができます。
どっちがいいかは知らないです。

要素数の変更

はい, ここでやっと本題です。vectorで要素数を変更するにはこうします。

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

int main(){
	vector<int> intv(5); // vector配列を作る

	intv.resize(10); // 要素数を10に増やす

	for(int i=0; i<10; i++){ 
		cin >> intv[i]; // 要素の代入
	}

	for(int i=0; i<10; i++){
		cout << intv.at(i) << endl; // 要素の表示
	}

	return 0;

}

はい, これだけです。8行目を追加してfor文を回す数を変えただけです。
簡単ですね。

vectorは他にも一発でソートできたり, 要素を逆順にできたり, 要素の全加算ができたりいろいろできます。
全部紹介したいのですがもう僕の力の限界なので自分で調べて頑張ってください!


コメントを残す

メールアドレスが公開されることはありません。