如何使用字符作为键值和字符串数组作为映射值创建映射 - 数组必须具有不同的长度?

时间:2015-02-01 06:42:43

标签: c++ arrays dictionary

我不确定制作地图所需的语法,其中键值为char类型,映射值为字符串数组。阵列需要不同的长度。 类似的东西:

map <char, string> backtranslate;
backtranslate['M'] = {"ATG"};
backtranslate['H'] = {"CAT", "CAC"}

请有人指定并解释正确的语法吗?

提前致谢!

2 个答案:

答案 0 :(得分:0)

您可以这样做:

map<char,vector<string>> backtranslate;
backtranslate['M'].push_back("ATG");
backtranslate['H'].push_back("CAT");
backtranslate['H'].push_back("CAC");

答案 1 :(得分:0)

在Map中,您可以将键或值放在一起,一切都扩展为Object。但是类型参数不能是原始类型,char是原始类型。代替char,您可以使用String类型。

地图以大写字母开头。

要在Map中添加元素,方法&#34; put&#34;存在。

解决方案:

 Map<String, String[]> backtranslate = new HashMap<String, String[]>();
 backtranslate.put("M", new String[]{"ATG"});
 backtranslate.put("H", new String[]{"CAT", "CAC"});

或者(我更喜欢List,更容易操作):

Map<String, List<String>> backtranslate = new HashMap<String, List<String>>();
backtranslate.put("M", Arrays.asList("ATG"));
backtranslate.put("H", Arrays.asList("CAT", "CAC"));