как вывести элемент multimap?
#include <stdio.h>
#include <map>
int main() {
std::multimap<char*, char> mp;
mp.insert("00", "\u28FF");
printf("%s\n", mp["00"]);
return 0;
}
Стоит задача сделать таблицу символов юникода в памяти, и обращаться по номеру элемента к её частям (00, 01, FF, и т д). Вставка элементов работает. А вот вывести элемент - выдаёт ошибку компиляции. Да и вообще, как грамотно обратиться к элементу словаря по одному из ключей.
Использование std::map выдаёт ошибку:
/data/data/com.termux/files/usr/include/c++/v1/map:1199:17: error: no matching member function for call to 'insert'
insert(__e.__i_, *__f);
^~~~~~
test.cpp:6:8: note: in instantiation of function template
specialization 'std::map<char *, char>::insert<const char *>' requested here
mp.insert("00", "\u28FF");
Нашёл вариант mp.insert(std::pair("00", "\u28FF"));. Ошибка:
test.cpp:6:8: error: no matching member function for call to
'insert' mp.insert(std::make_pair("00", "\u28FF"));
~~~^~~~~~
/data/data/com.termux/files/usr/include/c++/v1/map:1173:9: note:
candidate function not viable: no known conversion from 'pair<typename
__unwrap_ref_decay<const char (&)[3]>::type, typename
__unwrap_ref_decay<const char (&)[4]>::type>' to 'const pair<const
std::map<char *, char>::key_type, std::map<char *, char>::mapped_type>'
for 1st argument
insert(const value_type& __v) {return __tree_.__insert_unique(__v);}
^