a C++
нуб здесь.Я пытаюсь настроить некоторый код, используя следующие строки key (это означает, что они не единственные, но единственные, которые должны иметь значение для этого вопроса).Кстати, я использую компилятор Visual Studio 2010 C ++ для Windows.
CMap<ATL::CAtlString,LPCTSTR,UINT,UINT> mapForDuplicates; // "dict" definition
ATL::CAtlString strDescription = ... // let's just say it gets set to a value.
UINT nFound = 0; // What is this for???
BOOL bFound = mapForDuplicates.Lookup(strDescription, nFound);
mapForDuplicates[strDescription] = 1;
Теперь ... Я действительно не хочу использовать UINT
здесь, так как bool
это все, что мне действительно нужно,Однако я не мог понять, каковы все аргументы для конструктора CMap.При использовании C#
все, что мне нужно указать, это тип ключа и тип значения.Тот факт, что ATL::CAtlString
не соответствует LPCSTR
, действительно смущает меня.Что такое KEY
, ARG_KEY
, VALUE
и ARG_VALUE
?Зачем мне все четыре и могут ли все четыре отличаться?Спасибо.
...
template<class KEY, class ARG_KEY, class VALUE, class ARG_VALUE>
class CMap : public CObject
...
Примечание: я мог бы вместо этого использовать std::map
(хотя я также не использовал его);единственная не подлежащая обсуждению ATL::CAtlString
- я должен использовать этот тип.Дайте мне знать, если у вас есть вопросы.