Как преобразовать System :: array в std :: vector?

Есть ли простой способ преобразовать CLI / .NET System :: array в C ++ std :: vector , помимо поэлементного выполнения?

Я пишу метод оболочки ( SetLowerBoundsWrapper, ниже ) в CLI / C ++, который принимает систему :: array в качестве аргумента и передает эквивалент std :: vector встроенному методу C ++ ( set_lower_bounds ). В настоящее время я делаю это следующим образом:

using namespace System;

void SetLowerBoundsWrapper(array<double>^ lb)
{
    int n = lb->Length;
    std::vector<double> lower(n); //create a std::vector
    for(int i = 0; i<n ; i++)
    {
        lower[i] = lb[i];         //copy element-wise
    } 
    _opt->set_lower_bounds(lower);
}
6
задан double-beep 1 May 2019 в 07:07
поделиться