Какая библиотека содержит коллекцию карт STL?

Я пытаюсь скомпилировать проект, но когда я включаю объект карты, он выдает ошибку LNK2001. Я включил правильный заголовочный файл, но не знаю, какую библиотеку мне следует включить.

Я использую Visual Studio 2008, и когда я устанавливаю «Игнорировать все библиотеки по умолчанию» на «Нет», это будет работать, но установка таких свойств не является допустимым вариантом для окончательного результата. Я думал, что будет какая-то библиотека, полностью основанная на STL, но в моем коде есть векторы и очереди, и они отлично работают. Только когда я добавляю объект карты, появляется ошибка.


person John Montgomery    schedule 30.08.2012    source источник
comment
установка свойств таким образом не является допустимым вариантом для окончательного результата. Это похоже на проблему, которую вы должны решить.   -  person Nicol Bolas    schedule 30.08.2012
comment
Не могли бы вы показать нам наименьший пример компилируемого кода, который демонстрирует эту проблему, а также точные ошибки, которые вы получаете?   -  person Bart    schedule 30.08.2012
comment
Я согласен, но это не то, что я могу контролировать. :-/ И код TommiT почти такой же, я пока ничего не делаю с картой, просто пытаюсь объявить, что она вызывает проблемы.   -  person John Montgomery    schedule 30.08.2012
comment
Можете ли вы опубликовать часть кода, который доставляет вам проблемы? Подробная информация об ошибке компоновщика также может помочь.   -  person fbrereto    schedule 30.08.2012
comment
Что такое EXACT сообщение об ошибке. std::map должен требовать только файлы заголовков, так что есть еще что-то неправильное, о чем вы нам не говорите.   -  person Martin York    schedule 30.08.2012
comment
Если он статический, вам нужно поместить t в файл cpp. stackoverflow.com/questions/3585069/   -  person Software_Designer    schedule 30.08.2012


Ответы (3)


Правильное включение должно выглядеть так:

#include <map>

И правильная инициализация карты должна выглядеть примерно так:

std::map<int, char> mymap;
person TommiT    schedule 30.08.2012
comment
Да, я уже получил это. Не работает. - person John Montgomery; 30.08.2012

Итак, у знакомого была аналогичная проблема, и нужная мне библиотека была msvcprt.lib.

person John Montgomery    schedule 30.08.2012

Вероятно, это оптимизация реализации STL: код, не зависящий ни от одного параметра шаблона, выделяется в базовый класс, поэтому во всех экземплярах используется только одна копия, и эта копия хранится в стандартной библиотеке C++. так что вы не сможете избежать ссылки на эту библиотеку.

person Simon Richter    schedule 30.08.2012