gpt4 book ai didi

c++ - 我可以在 C++ 的映射结构中使用 vector 作为索引吗?

转载 作者:太空狗 更新时间:2023-10-29 23:42:42 25 4
gpt4 key购买 nike

我试图做这样的事情,但它没有编译:

class point
{
public:
int x;
int y;
};



int main()
{

vector<point> vp1;
vector<point> vp2;
vector<point> vp3;

map < vector<point>, int > m;

m[vp1] = 1;
m[vp2] = 2;
m[vp3] = 3;

map < vector<point>, int >::iterator it;
for (it=m.begin(); it!=m.end(); it++)
{
cout<<m[it->first]<<endl;
}
return 0;
}

最佳答案

您可以使用任何类型作为 std::map 的索引类型只要它支持 operator< (它可以定义为一个独立的函数——不必是一个成员函数,只要你可以为 a < ba 编写 b 作为你感兴趣的类型的实例)通常的语义(反反身,传递,......)。或者,您可以传递一个具有相同语义的二元函数来代替 <。 ,如果那更适合你。

关于c++ - 我可以在 C++ 的映射结构中使用 vector 作为索引吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2786054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com