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

Is there a maximum number of std::map inside a std::map in c++?

本文关键字:map std 最大数 中的 c++ 是否      更新时间:2023-10-16

我需要创建一个包含一个值为map等的map的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中的调试器被卡住,无法显示内容之外,一切都是正确的,这可能是由于多维映射。

是否限制模板参数的数量或递归深度取决于编译器。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

如果您仍然有问题,请发布一个完整的测试用例来演示问题。

相关文章: