在c ++中std :: map中是否有最大数量的std :: map?

时间:2014-11-11 17:01:03

标签: c++ vector map

我需要创建一个包含地图的地图,地图的值为等等。

我想问一下,在最大复杂性方面是否有限制。

我有std::map<string,std::map<string,std::map<string,vector<double>>>> BaselineData;

但即使我插入这样的数据也没有插入BaselineData.insert(std::pair<string,map<string,map<string,vector<double>>>>("A String",Spacedata)); Spacedatamap<string,map<string,vector<double>>> Spacedata;

的位置

提前谢谢

解决了:最后这是我的坏事,除了VS中的调试器卡住并且无法显示内容之外,一切都是正确的,可能是由于多维映射。

1 个答案:

答案 0 :(得分:5)

由编译器决定是否对模板参数的数量或递归深度施加限制。 C ++ 11建议限制至少1024 - 但这只是建议。在任何情况下,您的类型都不会接近合理编译器所施加的任何限制。

当我将片段组装成测试用例时,您的代码对我有用:

#include <iostream>
#include <map>
#include <string>
#include <vector>
using namespace std;

int main() {
    std::map<string,std::map<string,std::map<string,vector<double>>>> BaselineData;
    map<string,map<string,vector<double>>> Spacedata;
    BaselineData.insert(std::pair<string,map<string,map<string,vector<double>>>>("A String",Spacedata));

    std::cout << BaselineData.count("A String") << '\n';    
}

输出:1

演示:http://ideone.com/TqBeGA

如果您仍遇到问题,请发布完整的测试用例以证明问题。

相关问题