index std / boost :: map by struct element

时间:2013-09-16 00:05:18

标签: c++ map struct indexing element

我发现这个excellent question与我想做的事情略有相反。

我还是太老了,真的不明白发生了什么。 (我现在几乎没有比基本语法更容易适应)

我想要做的是用std::map个元素之一索引struct struct个。

所以,如果我有

struct accountStruct{
     string accountName;
     double total;
};

我想使用totalstd/boost::map accountStructaccounts[accountName].total

请告诉我如何。

1 个答案:

答案 0 :(得分:1)

您可以使用std::map<std::string, accountStruct>。但是,当您在地图中插入元素时,这不会自动填充accountName中的accountStructstd::map<K, V>当然不会考虑使用提供struct的用户字段作为密钥。但是,您可能希望直接使用std::map<std::string, double>。 ...或将帐户名保留在accountStruct

之外
struct accountStruct {
    double total = 0.0;
    // possibly other members
};

std::map<std::string, accountStruct> m;