C++ 索引std/boost::按结构元素映射

C++ 索引std/boost::按结构元素映射,c++,map,struct,indexing,element,C++,Map,Struct,Indexing,Element,我发现这和我想做的有点相反 我还是太糊涂了,无法真正理解发生了什么。(我刚刚刚刚刚刚对基本语法略感满意) 我想做的是通过struct的元素之一为std::map的struct建立索引 所以,如果我有 struct accountStruct{ string accountName; double total; }; 我想用accounts[accountName].total从std/boost::map调用accountStructs的total 请告诉我如何使用。您可以

我发现这和我想做的有点相反

我还是太糊涂了,无法真正理解发生了什么。(我刚刚刚刚刚刚对基本语法略感满意)

我想做的是通过
struct
的元素之一为
std::map
struct
建立索引

所以,如果我有

struct accountStruct{
     string accountName;
     double total;
};
我想用
accounts[accountName].total从
std/boost::map
调用
accountStruct
s的
total


请告诉我如何使用。

您可以使用
std::map
。但是,在地图中插入元素时,这不会自动填充
accountStruct
中的
accountName
。<代码> STD::MAP< /C>当然不要考虑使用用户提供的代码<代码> Stutt作为一个键。不过,您可能希望直接使用
std::map
。。。或者将帐户名从
accountStruct
中删除:

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

std::map<std::string, accountStruct> m;
struct accountStruct{
双倍合计=0.0;
//可能还有其他成员
};
std::map m;

为了便于插入,您可以通过定义
bool操作符来使用
std::set
而不是
std::map
!没有想到显而易见的:让
accountName
单独作为键。