我需要创建一个包含地图的地图,地图的值为等等。
我想问一下,在最大复杂性方面是否有限制。
我有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));
Spacedata
为map<string,map<string,vector<double>>> Spacedata;
提前谢谢
解决了:最后这是我的坏事,除了VS中的调试器卡住并且无法显示内容之外,一切都是正确的,可能是由于多维映射。
答案 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
如果您仍遇到问题,请发布完整的测试用例以证明问题。