Short Words
#include <iostream>
#include <sstream>
#include <string>
#include <map>
#include <algorithm>
using namespace std;
int main()
{
string line;
getline(cin, line);
istringstream lineStream(line);
string word;
map<string, string> wordsMap;
vector<string> wordsVec;
while(lineStream >> word)
if(word.size() < 5)
wordsVec.push_back(word);
transform(wordsVec.begin(), wordsVec.end(), wordsVec.begin(), ::tolower);
for(int i = 0; i < wordsVec.size(); ++i)
wordsMap.insert(pair<string, string>(word, 0));
for(map<string, string>::iterator it = wordsMap.begin(); it != wordsMap.end(); ++it)
{
cout << it->first << ", ";
}
cout << (--wordsMap.end())->first << endl;
return 0;
}
Компилатора крещи |4175|error: cannot convert 'std::__cxx11::basic_string<char>' to 'int' in argument passing и ми отваря stl_algo.h сочейки към for (; __first != __last; ++__first, ++__result)
*__result = __unary_op(*__first);
return __result;
Пробвах и със set и ми дава същия error.
Така изразен цикъла ми излизат купища errors. Първия е |21|error: no match for 'operator-' (operand types are 'std::set<std::__cxx11::basic_string<char> >::iterator {aka std::_Rb_tree_const_iterator<std::__cxx11::basic_string<char> >}' and 'int')|
:/
EDIT: Нямам никаква идея защо с -1 не работи, но сработи с -- отпред
Привет!
При тях този оператор не е дефиниран. Добавих работещия оперетор в предния коментар.
Поздрави!
Благодаря за насоките!