Как использовать строку в карте? - PullRequest
0 голосов
/ 27 января 2019
#include<iostream>
#include<map>
#include<string>
using namespace std;

int main()
{
    multimap<char,string> m1;


    m1.insert(pair<char,string>('A','def'));
    m1.insert(pair<char,string>('B','ghi'));
    m1.insert(pair<char,string>('C','jkl'));


    multimap<char,string>::iterator it;
    cout<<"The elements of m1 are:"<<endl;
    cout<<"\tKEY\tVALUE\n"<<endl;

    for(it=m1.begin();it!=m1.end();it++)
    {
        cout<<'\t'<<it->first
        <<'\t'<<it->second<<endl;
    }
    cout<<endl;


}

Я ожидаю, что выход A def Но я нашел ошибку. Как это исправить?

MapMulti.cpp [Ошибка] недопустимое пользовательское преобразование из 'int' в 'const std :: basic_string &' [-fpermissive]

MapMulti.cpp [Предупреждение] многосимвольная символьная константа [-Wmultichar]

1 Ответ

0 голосов
/ 27 января 2019
    m1.insert(pair<char,string>('A',"def"));
    m1.insert(pair<char,string>('B',"ghi"));
    m1.insert(pair<char,string>('C',"jkl"));

строковые литералы заключаются в двойные кавычки "likethis", но символы 's'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...