'void std::vector<_Ty>::push_back(_Ty &&)' : cannot convert parameter 1 from 'const
std::vector<_Ty>' to 'std::string &&'
1> with
1> [
1> _Ty=std::string
1> ]
1> Reason: cannot convert from 'const std::vector<_Ty>' to 'std::string'
1> with
1> [
1> _Ty=std::string
1> ]
1> No user-defined-conversion operator available that can perform this conversion, or the operator cannot be called
мои личные выглядит так:Продолжайте получать сообщение об ошибке типа. Не уверен, что это значит и как это исправить
private:
map<string, vector<string> > mymap;
};
и ошибка функции происходит, выглядит следующим образом:
void MiniSearch::NotFunction(const string q1, const string q2, vector<string>& ReturnVec) const
{
// checks for q1 and that q2 isnt in
if (mymap.find(q1) != mymap.end() && mymap.find(q2) == mymap.end())
{
// q1 in map q2 not in map else return
const vector<string>& temp = mymap.find(q1)->second;
unsigned int i = 0;
for (std::vector<string>::const_iterator it = temp.begin(); it != temp.end(); ++it)
{
if (ReturnVec.empty())
ReturnVec.push_back(*it);
else
if (i < ReturnVec.size() && ReturnVec[i] != *it)
ReturnVec.push_back(*it);
++i;;
}
}
ReturnVec.push_back(mymap.find(q1)->second); // ERROR
}
Как это исправить ? Является ли моя карта не использующей правильные структуры данных? Я что-то пропустил наедине? То, как я написал код, логически делает, потому что для меня просто не понятно, почему он не работает.
Вы пытаетесь 'push_back' весь вектор на' ReturnVec'? –
У меня есть имена файлов (.txt), которые я хочу нажать на returnVec, после его завершения будут возвращены все документы, в которых находился определенный входной текст. –