如何使用2个以上的元素访问std :: map中的特定元素?

-2 c++ stdmap

我试图从具有两个以上元素的std :: map中访问特定元素.这是一个例子:

std::map <int, CString, CString, CString> map;

//Initialise

map[0] = _T("stuff1"), _T("stuff2"), _T("stuff3");

//now if I just want to access stuff3 is it this:

CString str = map[0][2];

//or something more like this?

CString str = map[0]. ???
Run Code Online (Sandbox Code Playgroud)

任何帮助都会非常感谢.

编辑:感谢抱歉,第一次使用地图,我想知道为什么我找不到有关更多元素的std :: map的任何信息.

Ste*_*eed 5

你试过编译吗?它不应该.您只能为每个元素创建一个只有1个键和1个值的映射.

但是价值可能是复合的,所以你可以写

struct ValueType {
 CString v1;
 CString v2;
 CString v3;
}
std::map <int, ValueType> map;
Run Code Online (Sandbox Code Playgroud)

和访问元素 map[somekey].v3;

要在此类地图中插入值,您必须编写

ValueType strings = {"1","2","3"};
map.insert(999, strings);
Run Code Online (Sandbox Code Playgroud)

或者您可以创建一个辅助函数(即void addToMap(std::map <int, ValueType> &map, CSting const& v1, CString const& v2, CString const& v3)),它将以更方便的方式填充您的地图.