Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;通过BasePairMap映射char输入变量以获得输出整数变量 我是一个Python和SAS开发人员,在C++中有点迷失了。我要做的就是取一个char值,c,定义如下: std::string s1 = argv[1]; for (char c : s1)_C++ - Fatal编程技术网

C++;通过BasePairMap映射char输入变量以获得输出整数变量 我是一个Python和SAS开发人员,在C++中有点迷失了。我要做的就是取一个char值,c,定义如下: std::string s1 = argv[1]; for (char c : s1)

C++;通过BasePairMap映射char输入变量以获得输出整数变量 我是一个Python和SAS开发人员,在C++中有点迷失了。我要做的就是取一个char值,c,定义如下: std::string s1 = argv[1]; for (char c : s1),c++,C++,…并将其映射到下面的碱基对映射,如下所示: typedef std::map<string, int> BasePairMap; BasePairMap m; m["0"] = 48; m["1"] = 49; m["2"] = 50; m["3"] = 51; m["4"] = 52; m["5"] = 53; m["6"] = 54; m["7"] = 55; m["8"] = 56; m["9"] = 57; int in_arg = m[c]; typedef std:

…并将其映射到下面的碱基对映射,如下所示:

typedef std::map<string, int> BasePairMap;
BasePairMap m;

m["0"] = 48;
m["1"] = 49;
m["2"] = 50;
m["3"] = 51;
m["4"] = 52;
m["5"] = 53;
m["6"] = 54;
m["7"] = 55;
m["8"] = 56;
m["9"] = 57;

int in_arg = m[c];
typedef std::map BasePairMap;
BasePairMap m;
m[“0”]=48;
m[“1”]=49;
m[“2”]=50;
m[“3”]=51;
m[“4”]=52;
m[“5”]=53;
m[“6”]=54;
m[“7”]=55;
m[“8”]=56;
m[“9”]=57;
int in_arg=m[c];
这会产生生成错误:

错误(活动)E0349没有运算符“[]”与这些匹配 操作数SkyQCG:\Visual Studio 2017\C++ Projects\SkyQChannelChanger\SkyQChannelChanger\Main.cpp 144
操作数类型为:BasePairMap[char]

……和:

错误C2679二进制“[”:找不到使用右手的运算符 “char”类型的操作数(或没有可接受的 转换)SkyQCG:\visual studio 2017\c++ projects\skyqchannelchanger\skyqchannelchanger\main.cpp 144

我对自己没能弄明白什么似乎是一项相当简单的任务感到非常恼火

本次演习的超高级别目的是:

  • 例如,通过变量
    c
    为my
    basepairmap
    输入字符
    “4”
  • 在_arg中创建一个名为
    的整数变量,该变量将被赋值为
    52
…谁能帮我解释一下吗


谢谢

m[c]
c
不是
字符串,因此无法用于查找映射。您可以执行
m[std::string(1,c)]
,这有点难看,但会起作用。双引号创建字符数组(
“string”
,通常称为字符串),单引号创建字符常量(
'c'
)你的地图只是一个例子,或者你想把一个数字转换成它的值吗?如果你可以使用<代码> int in ARGG=C′- 0;< /C> >,没有地图。@克里斯姆-我可以生活在丑陋的状态下。你的解决方案起作用了,非常感谢。我今年在议程上C++变得不那么丑陋,更漂亮了,但是它是一个复杂的层次。ty比Python更高,目前我没有要求使用它来支付任何费用,因此它只能以业余爱好的速度进行…@VladFeinstein Hi,Vlad。感谢您的输入。虽然此脚本接收到一系列命令行参数,但需要一个映射,这些参数通过basepairmap映射到c,然后从另一端映射到in_arg。