如何创建以字符作为键值并将字符串数组作为映射值的映射 - 数组必须具有不同的长度

How can I create a map with chars as key values and arrays of strings as mapped values - arrays must be of different length?

本文关键字:映射 数组 字符串 创建 何创建 键值 字符      更新时间:2023-10-16

我不确定制作键值为 char 类型且映射值为字符串数组类型的映射所需的语法。数组需要有不同的长度。像这样:

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

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

提前感谢!

在 Map 中,你可以把 Object 作为键或值,一切都扩展 Object。但是类型参数不能是基元类型,char 是基元类型。代替 char ou 可以使用 String 类型。

地图以大写字母开头。

对于在 Map 中添加元素,存在"put"方法。

一个解决方案:

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

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

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

你可以做这样的事情:

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