问题描述
- c++,关于stl的应用,定义map
- 我想定义一个map容器,key是一个string,值是一个指向vector的指针,但是不同的string会对应不同类型的vector,这就不好定义了。求帮忙解决
解决方案
似乎没有很好的解决方案,因为stl是泛型,类型参数不同,就相当于两个不同的类型,不能存储在一个容器中。
下面是一个勉强能用的方法,供你参考:
可以用map<string void*>
,然后再对void*
强制类型转换,得到你想要的指针。前提是你已经知道每个string对应什么类型的指针,
类似于这样:
//定义map<string void> _map;//使用,假设你的key是int,存的是vector<int>*型的变量_map.put(""int"" new vector<int>();((vector<int>*)_map.get(""int""))->push_back(1);
解决方案二:
vector指针改成引用不行吗
解决方案三:
自己包装i一下map 然后通过模版来定义vector的类型 从map传递
时间: 2024-11-16 22:13:55