C++ 如何将指定字符视为其他值?

C++ 如何将指定字符视为其他值?,c++,C++,假设我收到字符“R”,我想设置每次收到“R”时,我都将其视为值5,最有效的方法是什么?由于它特定于char,因此可以使用大小恒定的数组 由于以下原因: char范围有限-128到127或0到255 C++ >代码> > ch> 和 int >代码>可互操作。李> 数组将给出O(1)时间复杂度 //例如: 整数数组[256];//ascii范围为0到255,为无符号整数形式 //设置字符“R”的值 数组['R']=5; //“`'R``的Ascii值是82。它将存储在索引82中。 ... /

假设我收到字符“R”,我想设置每次收到“R”时,我都将其视为值5,最有效的方法是什么?

由于它特定于
char
,因此可以使用大小恒定的
数组

由于以下原因:

  • char
    范围有限<代码>-128到127或0到255
C++ >代码> > ch> <代码>和<代码> int >代码>可互操作。李>
  • 数组将给出O(1)时间复杂度
  • //例如:
    整数数组[256];//ascii范围为0到255,为无符号整数形式
    //设置字符“R”的值
    数组['R']=5;
    //“`'R``的Ascii值是82。它将存储在索引82中。
    ...
    //使用数组['R']
    ...
    

    但如果它不是char,那么或将是一个更好的选择

    听起来像是你在寻找的。这取决于。从一个
    map
    /
    unordered\u map
    开始,然后从那里开始。如果它只是关于
    R
    一个简单的
    if(myChar=='R'){…
    就可以了。
    映射
    /
    无序映射
    更易于扩展。Re:-128到127——在大多数系统上都是这样,但语言定义不能保证这一点。有些系统具有更大范围的
    char
    值。但问题不在于一个
    char
    可以代表多少值,而在于输入的范围有多大。这取决于正在使用的字符编码,以及大多数将使用ASCII的系统,但是,同样,这不是必需的,并且有些系统使用其他编码。