2011-12-31 91 views
1

我需要创建一个向量图。第一个矢量包含一个字符串列表,第二个矢量包含一个整数ID列表。 这可能吗?C++中的地图数据结构

+1

http://stackoverflow.com/questions/1380585/map-of-vectors-in-stl我认为可能有帮助 – 2011-12-31 12:34:05

回答

2
std::map<std::string, int> isThisWhatYouNeed; //? 
std::map<std::vector<std::string>, std::vector<int> > orThis; //? 
0

如果我正确理解你的问题,你想要一个key =>向量的映射,其中一个向量包含字符串和其他整数?

你不能混合那样的类型。您可以做的最接近的是创建一个key => CustomClass的地图,其中您的自定义类包含一个字符串矢量和一个int整数矢量,并且两者都已填充。

另外,如果你想成为非常聪明并有可能为你创建一个庞大的调试头痛,你可以做一个映射到void *,并手动设法:)什么每个指针指向

2

您可能要查看Boost Variant(请参阅http://www.boost.org)。然后使用:

std::map<std::string, boost::variant<std::vector<string>, std::vector<int>>> 

如果,另一方面,你想从一个向量到另一个地图,那么你可以做的是通过提供一个自定义的,因为当你构建的关键类型的载体排序谓语地图。