Я не могу понять, что вызывает ошибку в следующем коде. Вкратце, код пытается перебрать элементы списка (каждый из которых представляет собой вектор целых чисел) и упорядочить их по структуре данных карты.Ошибка с базовым вводом списка Rcpp
// [[Rcpp::export]]
void getPathsFromList(Rcpp::List& pathsList,
std::unordered_map<int, std::vector<int> >& paths){
Rcpp::List plist(pathsList);
int p=plist.size();
for(int i=0;i<p; i++){
SEXP e = plist[i];
Rcpp::NumericVector v(e);
for(int j=0; j<v.size(); j++){
paths[i].push_back(v[j]);
}
}
}
Ошибки я получаю следующее:
error: no matching constructor for initialization of 'std::__1::unordered_map<int, std::__1::vector<int, std::__1::allocator<int> >, std::__1::hash<int>, std::__1::equal_to<int>, std::__1::allocator<std::__1::pair<const int, std::__1::vector<int, std::__1::allocator<int> > > > >
Я также попытался явно назначая v[j]
выше к int
переменной, а затем толкает его в вектор, но не совсем помощь. Похоже, что я упускаю что-то фундаментальное, и я бы очень признателен за любую помощь. (Я на OSX Mavericks.)
Пожалуйста, добавьте примеры данных, которые вы ожидаете совершить. – coatless