C++ 结构的映射作为键,结构的向量作为其值声明
我有一个结构,有两个成员:int和stringC++ 结构的映射作为键,结构的向量作为其值声明,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
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;
}