c++中的std::map中是否有最大数量的std::map
Is there a maximum number of std::map inside a std::map in c++?
我需要创建一个包含一个值为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));
其中Spacedata
是map<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
如果您仍然有问题,请发布一个完整的测试用例来演示问题。
相关文章:
- 存储在 std::map/std::set 中,与在存储所有数据后对向量进行排序
- 如何在<N>不发生内存泄漏的情况下同时(线程安全)填充 c++11 std::map<std::string,std::bitset*>?
- 无法在 std::map<std::string,std::shared_ptr 中设置值<class>>
- 如何在C++中迭代集合映射(std::map<std::set< char>, int >)?
- 如何初始化结构字段 std::map<std::string, std::string>称为参数
- issue with std::map std::find
- 为什么 std::map< std::map >不释放内存?
- C++ map<std::string> vs map<char *> 性能(我知道,"again?" )
- 确定运行时std::map/std::set的内存使用情况
- 映射上的模板参数无效 std::map< std::string, Stock*> &Stock
- 我的SFINAE检查std::map/std::vector有什么问题
- 使用 std::map<std::string, int> 计算表达式树
- 将数据从两种不同的数据结构插入 std::map <std::string, int> mymap 并通过套接字发送
- 类中的编译器错误,数据类型为 typedef map<std::string,std::p air<std::string,vector<int>>> MapPai
- C++ std::map<std::string, std::set<std::string>> .如何循环设置值?
- 如何填写和访问 std::map<std::p air<enum1, enum2>, funcPtr>?
- 二进制'<':找不到 map<std::string shared_ptr 的运算符<Foo>>
- 如何将 2 个字符* 数组直接映射到 std::map<std::string,std::string>
- C++ std::map<std::string, int> 获取键以特定字符串开头的值
- 从取消引用的迭代器返回 std::map<std::string, int> 时出现巨大的内存泄漏