访问地图矢量地图元素(c ++)

时间:2018-03-24 20:47:55

标签: c++ stdvector

我一直致力于简单的数据库系统管理,我已经提出:

std::map< std::string, std::vector < std::map < std::string,
          boost::variant <std::string, size_t, double bool> > > tables;

我有地图(记录)矢量(表格)的地图(表格),我已经写了一个函数来读取文件,但我不确定如何访问单个属性。

我可以用以下内容打印整个内容:

for(auto table: tables)
    for(auto record : table.second)
        for(auto attribute : record) {
            std::cout << j.second;

我尝试过这样的事情:

std::cout << tables["credentials"][2]["username"];

然而,这不起作用;它只打印一个空行。

1 个答案:

答案 0 :(得分:0)

您最有可能使用错误的地图键来访问数据库。

更新您的代码以打印数据库的内容,以便您也可以在地图中查看密钥。

for(auto table: tables)
{
   std::cout << "Key: " << table.first << std::endl;
   for(auto record : table.second)
   {
      for(auto attribute : record)
      {
         std::cout << "Key: " << attribute.first
                   << ", Value: " << attribute.second << std::endl;
      }
   }
}