イテレータと言う話題が出た
oyagさんから、覚えていた方が良いよと言われた事は覚えてるw
※いい加減なブログな自覚はあります。
間違ってたら指摘してくださるとうれしいです。
イテレータ
反復処理の為に存在動的配列 Vector の先頭要素から、順番に行う処理を、list,mapに対しても同等に扱える。
list, mapは構造的に違うらしいが。同じ扱いが出来る。
この同じ扱いを"抽象化"という。らしいw
うぬぬぬ、さっぱり前提がわからんwww
要は何が入ってるかワカラン要素をひとつづつ、呼び出して処理してるもんか?
海賊の死刑みたいなもんかね
リスト構造に対して順番に処理をする。
とのヒントを頂いたのですが。
C++のリスト構造を理解してません(アヒャ
リスト構造
リスト構造って変数の後ろに次のポインタが記載されてるもの。要は行き先が書いてある
最後の要素が最初を指せば、循環リスト構造になり
コレが前後だと、双方向になる。
欠点としては、読み込まないと次がわからないし。
一度終わらないと、総数がわかんない所かな?
速度も配列よりは遅かった気がする
たしか、間に入れたりするのは、配列よりも手間が少ないとの話しだった。
Pythonの何でも入れられるリストと言うのは、コレなんだろうな
ようは、次がわかれば良いので、型に依存しないってことですね
あれ?循環リストの総数ってどうするんだろ
標準ライブラリー
イテレータは標準ライブラリーにあるらしい。標準ライブラリー・・・機能拡張みたいなもんと認識
template
前段で覚えておいた方が良い物として、テンプレートなる物があるらしい。非常に便利との言葉を聞くので、調べてみる
・・・。簡潔にまとめると、型に依存する事の無い 関数、Class、引数らしい。
型に依存する事の無いテンプレートという型を作って処理するみたい。
なんだかスゴいもんである
説明から、コンパイル時に適切な型に自動で変更してくれるらしい。
あ、そうなんですか。
どのくらいメモリを確保するんだろうとか、思ってたけど。
それは特に型指定と変わらないのね
コード自体は型を気にする事無くがんがん記述して、
面倒な事はコンパイルさんにしてもらうってことですな。
SoftimageのSDKライブラリに用意されているCValueとか、そうなのかも
Softimageに用意されてるCRefArrayとか、
最初に要素数を指定する事が無かったりして、
スピードとか、メモリ確保とかどうなのかわからなかったけど、
このテンプレートを使ってるかもしれないなぁ。
わかんないけどね
というわけで、イテレータまでたどり着けてません orz
0 件のコメント:
コメントを投稿