我试图从具有两个以上元素的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的任何信息.
你试过编译吗?它不应该.您只能为每个元素创建一个只有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)),它将以更方便的方式填充您的地图.
| 归档时间: |
|
| 查看次数: |
1384 次 |
| 最近记录: |