C++ lastprivate变量的值在OpenMP的并行区域之外不可用

C++ lastprivate变量的值在OpenMP的并行区域之外不可用,c++,openmp,C++,Openmp,我正在使用OpenMP和Visual Studio 2008进行我的项目。我的函数中有一个parallel for循环,我想在parallel区域中更新在这个parallel for之外定义的变量。因为我希望值在并行区域之后可用,所以我在lastprivate()子句中声明了变量。但是在并行区域执行之后,我没有得到变量的任何值。以下是我的代码: vector<string> resultParamsNames; int count = 0; #pragma omp p

我正在使用OpenMP和Visual Studio 2008进行我的项目。我的函数中有一个parallel for循环,我想在parallel区域中更新在这个parallel for之外定义的变量。因为我希望值在并行区域之后可用,所以我在lastprivate()子句中声明了变量。但是在并行区域执行之后,我没有得到变量的任何值。以下是我的代码:

vector<string> resultParamsNames;
int count = 0;
        #pragma omp parallel for private(s,s_fa,measR1Value,c) firstprivate(count,paramNamesSet) lastprivate(resultParamsNames, count)
    for(int i = 0; i < 20; i++)
    {
        fitModel(model, t, c, inputFunctions, at, dt, resultParams, resultParamsNames, fittedCurve);
    }
vector resultParamsNames;
整数计数=0;
#pragma omp并行用于private(s,s_fa,measR1Value,c)firstprivate(count,paramNameset)lastprivate(resultParamsNames,count)
对于(int i=0;i<20;i++)
{
fitModel(模型、t、c、输入函数、at、dt、结果图、结果图、拟合曲线);
}
这里,“resultParamsNames”是我在并行区域中更新的变量。如何在平行区域之外获取此变量的值

谢谢,
Rakesh。

此外,变量“count”值在区域外也不可用。出于隐私的原因,我不能发布全部代码。即使你不能发布私人代码,你也应该试着做一次修改。与此同时,你应该仔细阅读。我认为你不能用他们做你想做的事。您可能需要缩减和/或原子/关键子句。