изучаю STL, работаю с multimap:
typedef multimap<string, string> str_mmap;
str_mmap test_mmap;
string str1("1"), str2("2"), s("1");
test_mmap.insert(str1, str1);
test_mmap.insert(str2, str2);
test_mmap.insert(str1, str2);
pair<str_mmap::iterator, str_mmap::iterator> finded = test_mmap.equal_range(s);
последняя строка выдает ошибку, которая возникает внутри STL:
/usr/include/c++/4.8/bits/stl_tree.h:1732: ошибка: no match for 'operator++' (operand type is 'std::basic_string<char>')
for (; __first != __last; ++__first)
/usr/include/c++/4.8/bits/stl_tree.h:1733: ошибка: no match for 'operator*' (operand type is 'std::basic_string<char>')
_M_insert_equal_(end(), *__first);
^
Компилятор: QT 4.8
Попробуйте объявить итератор вот так:
pair <multimap<string, string>::iterator, multimap<string, string>::iterator> finded = test_mmap.equal_range(s);
В общем разобрался сам, парился 2 дня, ошибка возникала в insert, в пятницу причем она там не возникала (комментил equal_range и вызывал просто find)
итак:
test_mmap.insert(make_pair(str1, str1));
test_mmap.insert(make_pair(str2, str2));
test_mmap.insert(make_pair(str1, str2));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Можете, пожалуйста, объяснить, как пользоваться этой программой через командную строку
Вроде всегда так класс разделял в h-хедерные файлы и cpp-файлы с кодом, но в этот раз что-то пошло не так :( Пишет Unresolved external blablablaobj
и снова доброго вечера всем форумчанамВозникла проблема с переопределением объектов std::function<void()> и будто вещь это не особо сложная, а разобраться...