如何在OpenMP 4中为std :: vector编写“目标数据映射”?

时间:2016-06-11 01:06:16

标签: c++ vector openmp pragma

我想使用C ++和Dim paths = Directory.GetDirectories("C:\TTC\projects\", "*", SearchOption.AllDirectories) ListBox1.Items.AddRange(paths) 。我有C代码与C数组创建如下:

ListBox1.DataSource = New IO.DirectoryInfo("C:\TTC\projects\").GetDirectories()
ListBox1.DisplayMember = "Name"

现在我使用C ++ vector并得到:

vectors

他们在这里说OpenMP4引入了用户定义的缩减。但它有数据地图的任何类比吗?

1 个答案:

答案 0 :(得分:4)

您始终可以获取std::vector底层存储的指针,然后以与C代码相同的方式使用它们。

double* data = vec_data.data();
double* result = vec_res.data();
int n = vec_data.size();

#pragma omp target data map(tofrom:data[0:n],result[0:n])
//loop