【发布时间】:2011-12-11 14:41:31
【问题描述】:
我将如何访问以下地图中的元素:
map<int, string[4]> * my_map;
我以前是通过 at() 操作符来做的
string * val_ptr = my_map->at(key);
最近,我发现这是我的编译器的非标准功能,正确的做法是通过operator[]。不幸的是,编译器一直试图将我的密钥转换为string [4]:
string * val_ptr = my_map->operator[](key);
error: conversion from ‘int’ to non-scalar type ‘std::string [4]’ requested
我在网上看过,但似乎没有任何带有字符串数组映射的示例。我在做一些无效的事情吗?我应该改用向量吗?如果是,创建和访问会更慢吗?
【问题讨论】:
-
map<int, string[4]>什么时候合法了?string[4]或任何其他数组不可分配。