2016-06-11 4 views
3

C++ 및 vectors을 사용하고 싶습니다.OpenMP 4에서 std :: vector에 대한 "대상 데이터 맵"작성 방법은 무엇입니까?

double* data = (double*)malloc(sizeof(double) * n); 
double* result = (double*)malloc(sizeof(double) * n); 

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

가 지금은 C++ 벡터를 사용하고 난 얻을 : 여기

example.cpp:31:41: error: expected variable name or an array item 
    #pragma omp target data map(tofrom: data[0:n],result[0:n]) 

들이 OpenMP4 소개 사용자 정의 감소 말 I는 다음과 같이 생성 된 C 배열과 C 코드를했다. 그러나 데이터 맵에 어떤 유사점이 있습니까?

답변

3

언제든지 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