C++ 结构的映射作为键,结构的向量作为其值声明

C++ 结构的映射作为键,结构的向量作为其值声明,c++,vector,map,struct,C++,Vector,Map,Struct,我有一个结构,有两个成员:int和string struct A { int a; string b; } vector<A> pl; pl = getPL(); //getPL returns a vector<A> for ( auto: pl ) { vector<A>tr; tr = getTR() //getTR returns vector<A> for(auto: tr) { //store tr somewhere

我有一个结构,有两个成员:int和string

struct A
{
 int a;
 string b;
}

vector<A> pl;
pl = getPL(); //getPL returns a vector<A>
for ( auto: pl )
{
 vector<A>tr;
 tr = getTR() //getTR returns vector<A>
 for(auto: tr)
 {
  //store tr somewhere..
 } 

}
结构A { INTA; b串; } 向量pl; pl=getPL()//getPL返回一个向量 用于(自动:pl) { 矢量变换器; tr=getter()//getter返回向量 用于(自动:tr) { //把tr储存在某处。。 } } 我想创建一个
贴图
,这样每个pl对象都可以包含一个向量。怎么做?C++中有其他方法或数据结构可以实现我所要做的吗?
谢谢,

std::map
s按键对数据进行排序。但要做到这一点,他们需要某种方法来比较两个关键对象,并确定哪一个应该首先出现。默认情况下,此比较是使用编译的(auto:pl)-的
完成的?另外,我也不确定你的问题是什么。为什么
map
对你不起作用?我知道那不会编译。它应该用于(自动i:pl)。实际上我在寻找如何将结果存储在一个地图上。比如,用这样的代码来映射。使用<代码> A <代码>作为地图中的键,你将需要定义<代码>运算符@ dLf,实际上我是C++的新手,你能给我提供一些语法吗?谢谢。@JosephMansfield做地图是个好主意吗?或者有没有其他方法来实现同样的目标?谢谢。@user2391188 Ok;很高兴能帮上忙。你能解释一下如何填充这张地图吗?谢谢
#include <map>
#include <string>
#include <vector>

struct A
{
    int a;
    std::string b;
};

bool operator <(const A& l, const A& r)
{
    if(l.a != r.a)
        return l.a < r.a;
    return l.b < r.b;
}

struct B
{
    int a;
    std::string b;
};

struct CompareBs
{
    bool operator()(const B& l, const B& r) const
    {
        if(l.a != r.a)
            return l.a < r.a;
        return l.b < r.b;
    }
};

int main()
{
    std::map<A, std::vector<A>> aMap;
    std::map<B, std::vector<B>, CompareBs> bMap;
    return 0;
}