問答収集 カテゴリ:Flashプログラミング
現在のスレッド一覧 / 新規に質問を投稿
レス数:4 / 状態:未解決 / No:26 / ATOM
1 名前:ベクトル 日付:2010/05/30(日)23:22:33 ID:CFxHATZ7LEjv
行列をvectorクラスで作成したいのですが、
arrayを作成するときのようにすべての要素を一度に作成することはできますか?
arrayのとき:
var amat:Array=[[1,2,3],[4,5,6],[7,8,9]];

vectorのとき:
var vmat:Vector.<Vector.<uint>>;
vmat=Vector.<Vector.<uint>>([[1,2,3],[4,5,6],[7,8,9]]);
//正しく作成されない
//カラのvectorが作成される

vmat=Vector.<Array>([[1,2,3],[4,5,6],[7,8,9]]);
//これならできるが、ベースがArray型になってしまう。
//vectorクラスの利点がフルに活用できない!!

今のところfor文でarrayの各エレメントを一つずつvectorに変換して、
親vectorにconcatしています。
2 日付:2010/05/31(月)13:10:30 ID:2iuB4losX8Zs
こちらの記述で如何でしょう?

var amat:Vector.<Vector.<uint>> = Vector.<Vector.<uint>>([
Vector.<uint>([1,2,3]),
Vector.<uint>([4,5,6]),
Vector.<uint>([7,8,9]),
]);
3 日付:2010/06/04(金)21:16:46 ID:CFxHATZ7LEjv
なるほど・・・
うーん
何とかすでにArrayになっている行列を
ドカンと一発でVector.<Vector.<uint>>に変換できませんかね?
4 日付:2010/06/10(木)12:59:28 ID:qPr0YUEfJmUW
cs5以降で可能な記述方法です。
あまり変わりませんが…

var v:Vector.<Vector.<uint>>;
v = new <Vector.<uint>>[
new <uint>[0,1,2],
new <uint>[3,4,5],
new <uint>[6,7,8],
];
このスレッドについて
質問の状態 :
未解決
投稿開始日 :
2010/05/30(日)23:22:33
投稿終了日 :
2010/06/10(木)12:59:28
投稿者 :
ベクトル
レス総数 :
4
スレッド番号 :
26
MondoCollectionSystem ver.0x00020000 by Hakuhin