C++ ときどき ごはん、わりとてぃーぶれいく☆

USAGI.NETWORKのなかのひとのブログ。主にC++。

C++のstd::vectorはなぜ"vector"という名前なの?

この疑問を抱いた人は一定数居て、そして新たにC++を学習させた者もまたある程度の割合で同じ疑問を例え一刻であれ抱くと思う。そんなアナタはまだ理系とは言えないか、せいぜいとってもヒヨッコである。stackoverflowでの質問とその答えの一部を紹介しよう。

User Skilldrick - Stack Overflowが「C++のvectorはどうしてvectorと名付けられているのさ?」とかいう用件で次のように疑問を投げかけている。

この質問はとても単純明快だね。
私は数学におけるvectorってのはナンのことかなんとなくは解っているつもりだけど、C++のvectorとはさっぱり繋がらないんだ。なんでだろうね?

みたいな。(意訳含む)

これに対し多くの回答が寄せられている。

User Mehrdad Afshari - Stack Overflow曰く、

数学に於いてvectorwikipedia:数ベクトル空間*1として定義されているね。
これってばC++のvectorの格納法そのまんまだったりする(・∀・)ヨネ!*2

すると質問者も

にゃぁ〜るほどぉー。*3
私はvectorにはせいぜい2次元とか3次元とかその程度という感覚で居たんだよ、vectorがもっと多くの次元に対応した次元の繋がりによって表される構造だってコトに気がついていなかったんだ。

とかすっかり綺麗さっぱり納得した様である。

私もC++を始めたばかりの頃に同じ疑問を抱いて、そして数学的思考を少しできる余裕ができてまさにこんな具合に気が付くといった具合でした。特にC++を使い始めたきっかけがDirectXプログラミングだったりすると、少なくともその中の狭義においては低次元のベクタこそがベクタというものの本質的な実体ではないかと漠然と体感しながら2次元、3次元に特殊化された幾何学をDirectXAPIの学習と共に補助的に知識を補充しながら学ぶ事になる人も少なからず居た事でしょう。

私もそんな一人だった次第ですから、これに気付いていなかった当時は"自称"テラ理系(実際はテラ理系風味のふわふわさん)だったのでしょうね。まあ、今でも私は自称テラ理系ですけどね・w・