模拟(map)

ACM编程挑战:字母转数字求和
本文介绍了一道ACM编程题,题目要求将输入的两个由英文单词表示的数字转换成十进制数并求和。通过使用C++编程语言,创建映射表将英文单词与数字对应,再进行加法运算,最终输出结果。

 594-还是A+B

题目来源:http://acm.nyist.cf/problem/594

 题目描述:

输入两个小于100的正整数A和B,输出A+B;

A,B均为每位数字对应的英文字母,结果为十进制数。

输入描述:

A,B。

输出描述:

A+B;

样例输出:

one + two =
one + two zero =

 样例输出:

 3

21

#include<bits/stdc++.h>
using namespace std;
string a[]= {"zero","one","two","three","four","five","six","seven","eight","nine"};
int main()
{
    map<string,int> num;
    for(int i=0; i<10; i++)
        num[a[i]]=i;
    char a[105],b[105];
    while(~scanf("%s%s",a,b))
    {
        int x,y;
        x=num[a];
        if(b[0]!='+')
        {
            x=x*10+num[b];
            scanf("%s",a);
        }
        scanf("%s%s",a,b);
        y=num[a];
        if(b[0]!='=')
        {
            y=y*10+num[b];
            scanf("%s",a);
        }
        printf("%d\n",x+y);
    }
    return 0;
}

 

### 使用 Lua Table 模拟 Map 数据结构 Lua 中的 `table` 是一种强大的数据结构,可以用来实现键值对映射关系,类似于其他编程语言中的字典或哈希表。下面展示如何创建并操作这种类型的表格来模拟 map。 #### 创建一个简单的字符串到函数映射表 ```lua -- 定义一个名为 lua_util 的 table 来存储字符串->函数的关系 local lua_util = {} function lua_util.add(a, b) return a + b end function lua_util.subtract(a, b) return a - b end -- 将此模块注册给 Lua 解释器以便通过 require 调用 return _G.luaopen_luautil and package.loaded['luautil'] or setmetatable(lua_util, {__call = function(_, ...) return lua_util(...) end}) ``` 这段代码定义了一个叫做 `lua_util` 的 table 并向其中添加了一些方法[^1]。这里的关键在于理解 Lua tables 可以作为关联数组工作,在这个例子中,key 是字符串名称而 value 则是指向相应功能的闭包(匿名函数)。当把这样的 module 返回时,它允许外部脚本像这样加载和调用这些已定义的功能: ```lua require("luautil") print(luautil.add(5, 3)) -- 输出8 print(luautil.subtract(7, 2)) -- 输出5 ``` #### 动态构建 key-value 对应关系 除了静态地预先设定好所有的 keys 和 values 外,还可以动态地往已经存在的 table 中增加新的条目。这可以通过简单地赋值新成员变量的方式完成: ```lua myMap = {} -- 初始化一个新的空map/table myMap["firstKey"] = "valueA" -- 插入第一个元素 myMap.firstKey -- 访问该元素也可以写作 myMap["firstKey"] myMap.secondKey = "valueB" -- 添加第二个元素 ``` 上述方式同样适用于更复杂的数据类型作为 value 或者甚至嵌套 maps/tables 作为 value 存储更多信息。 #### 遍历整个 map 表格 遍历所有 entries 可以借助 pairs 函数轻松做到这一点: ```lua for k,v in pairs(myMap) do print(k .. ": " .. tostring(v)) end ``` 以上就是关于怎样利用 Lua Tables 实现类似 map 结构的一些基本介绍以及实践案例。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nuoyanli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值