Как использовать 2d массив для объявления объекта array_view или array в c ++ AMP - PullRequest
1 голос
/ 18 декабря 2011

Я пытаюсь использовать массив, например int myarray[2][3], для инициализации array_view объекта.Я пытался array_view<int, 2> a(2,3, myarray); Однако это не работает.Я также хотел бы иметь возможность сделать то же самое с вектором.Есть идеи?

Ответы [ 2 ]

3 голосов
/ 20 декабря 2011

Метод Балтрама правильный. И вы можете заменить

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);

Спасибо

2 голосов
/ 18 декабря 2011

Попробуйте 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());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...