2

int myarray[2][3]オブジェクトの初期化などに配列を使用しようとしていarray_viewます。私は試しましたがarray_view<int, 2> a(2,3, myarray);、うまくいきません。ベクトルでも同じことができるようにしたいと思います。何か案は?

4

2 に答える 2

3

Baltramの方法は正しいです。そして、あなたは置き換えることができます

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

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

簡単にするために。

さらに簡単な方法は次のとおりです。

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

ありがとう、

于 2011-12-19T23:03:31.967 に答える
3

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

編集 :

(固定サイズの) ベクトルのベクトルを直接使用して、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());
于 2011-12-17T21:43:28.737 に答える