【问题标题】:Map data structure in C++C++中的映射数据结构
【发布时间】:2011-12-31 12:31:20
【问题描述】:

我需要创建一个向量图。第一个向量包含字符串列表,第二个向量包含整数 ID 列表。 这可能吗?

【问题讨论】:

标签: c++ vector maps


【解决方案1】:
std::map<std::string, int> isThisWhatYouNeed; //?
std::map<std::vector<std::string>, std::vector<int> > orThis; //?

【讨论】:

    【解决方案2】:

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

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

    另一方面,如果您尝试从一个向量映射到另一个向量,那么您可以通过在构建映射时为键类型的向量提供自定义排序谓词来做到这一点。

    【讨论】:

      【解决方案3】:

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

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

      或者,如果您想变得非常聪明,并且可能会给您带来大量调试问题,您可以对 void* 进行映射,并手动管理每个指针指向的内容:)

      【讨论】:

        猜你喜欢
        • 2010-09-05
        • 2012-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多