Loading...
Filipbg avatar Filipbg 26 Точки

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.

0
C++ Fundamentals 22/10/2019 16:58:32
j.petrov_90 avatar j.petrov_90 373 Точки

Привет, колега,

Много се радвам, че останалите курсисти те обсипват с отговори.
Успяхме да си направим готино community.

Искам да ти дам един съвет.
Той не е свързан с решението на задачата колкото със справянето с грешките на компилатора.
Когато видиш грешка, която не знаеш какво значи - копираш грешката (или поне първата значима част от нея) и я paste-ваш в Google.
Там ще намериш отговор какво се случва.

Конкретно ти отговарям за грешката в първия ти пост:

map<string, string> wordsMap;
wordsMap.insert(pair<string, string>(word, 0));

ти генерира грешка cannot convert 'std::__cxx11::basic_string<char>' to 'int'
защото мапа ти е от std::string и std::string, а ти му подаваш std::string и int.
Стринга и int-а не са неща, които директно могат да се cast-нат едно към друго (implicit conversion)

Поздрави

0
23/10/2019 09:24:09
Filipbg avatar Filipbg 26 Точки

Благодаря! И това направих още в началото преди да създам topic тук във форума за error-а. Компилатора дори не ми каза на кой ред е причината, само това число 4175. Просто не можах да намеря solution от Google.

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.