首页 > 解决方案 > C++ 中的 Lua 表模拟

问题描述

在 Lua(我知道的唯一一种语言)编码多年后,我开始学习 C++。帮助我,请用 C++ 编写相同的代码

ticker_list="GAZP,SBER,GMKN"
period_muvinga={}
period_muvinga.GAZP=23
period_muvinga.SBER=19
period_muvinga.GMKN=20
for sec in string.gmatch(ticker_list,"%a+") do
   local period=period_muvinga[sec]
end

主要问题是 C++ 中 Lua 表的 100% 类似。

标签: c++lua

解决方案


好的,这是用c++编写的等效代码

#include <iostream>
#include <map>
#include <string>

int main ()
{
  std::map<std::string, int> period_muvinga;

  period_muvinga["GAZP"] = 23;
  period_muvinga["SBER"] = 19;
  period_muvinga["GMKN"] = 20;

  //  Iterate over all the key,value pairs in map
  //
  for (const auto & p: period_muvinga)
    {
      // Extract key from pair
      std::string ticker = p.first;

      // Extract value from pair
      int period = p.second;

      std::cout << ticker << " = " << period << std::endl;
    }
  return 0;
}

正如其他人所说,std::map与lua表不完全相同。因此,取决于您想要做什么,std::map可能会或可能不会满足您的需求


推荐阅读