Код:Не удается получить сеттер работать
ЗАГОЛОВКА
class Parser{
private:
unsigned int cant_documentos;
unsigned int cant_terminos;
std::map<std::string,short> dicc_stopwords;
std::map<std::string,unsigned int> hash_frecuencias_globales;
std::map<std::string,std::map<std::string,unsigned int> > hash_frecuencias_locales;
std::map<std::string,std::string> hash_apariciones_unicas;
public:
Parser();
~Parser();
public:
void setFrecuenciasGlobales(std::map<std::string,std::map<std::string,unsigned int> > frecuencias);
};
КОНЕЦ HEADER
.CPP
КОНЕЦ CPP
COMPILER ВЫХОД :
parser/parser.cpp:102:30: error: no match for ‘operator=’ in ‘((Parser*)this)->Parser::hash_frecuencias_globales = frecuencias’
parser/parser.cpp:102:30: note: candidate is:
/usr/include/c++/4.6/bits/stl_map.h:253:7: note: std::map<_Key, _Tp, _Compare, _Alloc>& std::map<_Key, _Tp, _Compare, _Alloc>::operator=(const std::map<_Key, _Tp, _Compare, _Alloc>&) [with _Key = std::basic_string<char>, _Tp = unsigned int, _Compare = std::less<std::basic_string<char> >, _Alloc = std::allocator<std::pair<const std::basic_string<char>, unsigned int> >, std::map<_Key, _Tp, _Compare, _Alloc> = std::map<std::basic_string<char>, unsigned int>]
/usr/include/c++/4.6/bits/stl_map.h:253:7: note: no known conversion for argument 1 from ‘std::map<std::basic_string<char>, std::map<std::basic_string<char>, unsigned int> >’ to ‘const std::map<std::basic_string<char>, unsigned int>&’
В чем проблема?
Его не ваша ошибка, но НИКОГДА не передайте такую карту: 'map> frecuencias,'. Это копирует всю карту, это ужасно неэффективно. –
RichardPlunkett
Я идиот !!! Я знаю проблему. Не волнуйтесь, – user3013172
введите неправильную карту, да? используется тип frecuencias_locales, но нужен тип frecuencias_globales. Не изменяет факт, который вы должны передать как const &. – RichardPlunkett