Я пытаюсь извлечь значение из самого большого ключа на моей карте, являющегося значением вектора, а также пытаюсь сохранить это значение в новом векторе. Ключи карты двойные, а значения - векторы.
Это моя карта:
map <double, vector<long>> correlationValues1;
И я хочу получить значение с наибольшим ключом (при условии, что ключи карты отсортированы в порядке возрастания):
vector<long> finalDirections1 = (correlationValues1.end())->second;
Когда я компилирую, я получаю ошибку:
Error C2664 'std::pair<const _Kty,_Ty>::pair(std::pair<const _Kty,_Ty> &&)': el argumento 2 no puede convertirse de 'std::vector<double,std::allocator<_Ty>>' a 'const std::vector<long,std::allocator<_Ty>> &' TDI c:\program files (x86)\microsoft visual studio\2017\enterprise\vc\tools\msvc\14.12.25827\include\xmemory0 945
Помогите кому-нибудь?
P.S:
Извините за мой плохой английский.
P.P.S:
Спасибо за поддержку, ребята!
Это все еще доставляет ту ошибку компиляции ...
@ Мальчик, я попробовал твой метод, но все еще не работает ...
Я не знаю, действительно ли это влияет, но когда я помещаю ключи и значения в карту, я использую .emplace ():
vector<double> arr1;
arr1.push_back(temp1.FirstRow());
arr1.push_back(temp1.LastRow());
arr1.push_back(temp1.FirstCol());
arr1.push_back(temp1.LastCol());
vector<double> arr2;
arr1.push_back(temp2.FirstRow());
arr1.push_back(temp2.LastRow());
arr1.push_back(temp2.FirstCol());
arr1.push_back(temp2.LastCol());
correlationValues1.emplace(correlation, arr1);
correlationValues2.emplace(correlation, arr2);
Понятия не имею, почему это происходит ...