Мне нужно взять вхождения слов, взятых из файла, используя map<string,int>
, а затем мне нужно скопировать их в map<int,
vector<string>, cmpDec >
и распечатать их в порядке убывания.
Я пыталсявзять частоты слов из файла в map<string, int>
, а затем я пытаюсь скопировать его в map<int,
vector<string> >
без результатов
Я объявил 2 карты:
map<string, int> text;
map<int, vector<string>, cmpDec> freq;
Iвзять текст из файла на первой карте со словом частоты:
while (rf >> words) {
text[words]++;
}
Теперь я должен поместить частоты на второй карте (обязательно), где мне нужно иметь первую int
, дляnum частот слов, vector
со словами для каждой частоты, и сравнение для убывающих частот.Теперь я пытаюсь поместить данные во вторую карту из первой таким образом:
map<string, int>::iterator iter_map1 = text.begin();
map<int, vector<string>>::iterator iter = freq.begin();
vector<string>::iterator iter_v;
for (; iter_map1 != text.end(); ++iter_map1) {
iter->first.insert(make_pair(iter_map1->second, iter->second.push_back(iter_map1->first)));
}
Это дает 2 ошибки в строке iter-> second ....:
...\BagOfWords.cpp|56|error: request for member 'insert' in 'iter.std::_Rb_tree_iterator<_Tp>::operator-><std::pair<const int, std::vector<std::__cxx11::basic_string<char> > > >()->std::pair<const int, std::vector<std::__cxx11::basic_string<char> > >::first', which is of non-class type 'const int'|
и
... \ BagOfWords.cpp | 56 | ошибка: неверное использование пустого выражения |
Что я делаю не так?Есть ли более простой способ взять слова (и их частоты) из файла и поместить их на вторую карту, не переходя от первой?