Herkes bir CLI/.NET System :: dizisini C++ std :: vektörüne dönüştürmenin kolay bir yolunu biliyor mu?convert Sistem :: dizi için std :: vektör
Bir System :: dizini argüman olarak kabul eden CLI/C++ uygulamasında bir sarmalayıcı yöntemi (aşağıda SetLowerBoundsWrapper) yazdım ve eşdeğer std :: vektörünü yerel C++ yöntemine (set_lower_bounds) geçiriyorum. şöyle anda bunu yapmak:
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);
}
Mükemmel, teşekkürler (yapay kapsam GC engel olmayacak şekilde
pin_ptr
, mümkün olduğu kadar erken hafıza sabitlemeyi kaldırmak için. Izin vermektir). Bu ilk kez çalıştı – RoryDiğer insanlar için orada okumak için çok meşgul kaydırma vardır: _opt-> set_lower_bounds (alt) sorudan gelen işlevdir :) –