2011-12-17 4 views
1

の配列ビューまたは配列オブジェクトを宣言する方法int myarray[2][3]などの配列を使用してarray_viewオブジェクトを初期化しようとしています。試しましたarray_view<int, 2> a(2,3, myarray);しかし、それは動作しません。私はまた、ベクトルで同じことをすることができるようにしたいと思います。何か案は?2次元配列を使用してC++ AMP

答えて

2

array_view<int, 2> a(2, 3, *myarray);

EDITしてみてください:

(固定サイズ)のベクトルをベクトルはarray_viewオブジェクトを初期化するために直接使用することはできません。

は、しかし、あなたはそのような何かができる:

vector< vector<int> > my_multi_vector; // Fill my_multi_vector with data 
vector<int> my_composed_vector; 
for(int i = 0, ie = my_multi_vector.size(); i != ie; ++i) 
    my_composed_vector.insert(my_composed_vector.end(), my_multi_vector[i].begin(), my_multi_vector[i].end()); 
array_view<int, 2> a(2, 3, &my_composed_vector.front()); 
+0

それは動作しますが、宜しくお願い致します。どのように私はベクトルのためにそれを行うだろうか? – drowdemon

+0

int配列を持つベクトルまたはvectorを持つarray_viewを作成しますか? – Baltram

+0

ベクトルのベクトルを持つarray_view – drowdemon

3

Baltramの方法が適切です。 そして、あなたはそれを簡単にするために

array_view<int, 2> a(2, 3, my_composed_vector); 

によって

array_view<int, 2> a(2, 3, &my_composed_vector.front()); 

を置き換えることができます。ここで

はもっと簡単な方法です:

int myarray[2][3]; 
int *p = &myarray[0][0]; 
array_view<int, 2> a(2, 3, p); 

おかげで、