[[
filter
]]
Xtal Unofficial Wiki
現在位置:
Xtal Unofficial Wiki
»
Xtal Reference
»
Iterator
»
filter
文書の表示
以前のリビジョン
最近の変更
サイトマップ
ログイン
この文書は読取専用です。文書のソースを閲覧することは可能ですが、変更はできません。もし変更したい場合は管理者に連絡してください。
====== filter ====== <code cpp> </code> <code cpp> </code> ===== Description ===== //pred//がtrueを返す要素だけをイテレートするイテレータを返します。 selectとfilterは全く同じ動作です。 ===== Example ===== ゲームのオブジェクトの更新・削除を意識したサンプルです。イテレータはfiberを使って実現されているので、もちろんfor文で書いた方が速いです。 ==== C++ ==== ==== Xtal ==== <code cpp> class Object{ + _isAlive : false; _i; initialize(_i){} update(){ if (math::random() < 0.5){ %f[Object %d is finished.](_i).p; return false; } return true; } release(){ _isAlive = false; %f[Object %d is released.](_i).p; } } objs : []; 10.times{ obj : Object(it); obj.isAlive = true; objs.push_back(obj); } objs.filter(|obj| obj.isAlive?(!obj.update()):false){ it.release(); } objs{ it.isAlive.p; } </code> ==== Output ==== <code> Object 0 is finished. Object 0 is released. Object 1 is finished. Object 1 is released. Object 3 is finished. Object 3 is released. Object 5 is finished. Object 5 is released. Object 6 is finished. Object 6 is released. false false true false true false false true true true </code>
reference/iterator/filter.txt · 最終更新: 2011/07/15 09:00 by sukai
文書の表示
以前のリビジョン
文書の先頭へ