我想将给定类的对象映射到另一个对象的对象.然而,我想用作关键的类不是由我编写的,而是一个struct带有一些值的简单类.std :: map命令它的内容,我想知道它是如何做的,以及是否有任意类可以用作键或者是否需要定义一组需求(运算符和不需要).
如果是这样,我可以为实现运算符映射用途的类创建一个包装器.我只需要知道我需要先实现什么,并且我在网上找到的类的引用都没有指定它们.
这个 SO 答案说STL Map with a Vector for the Key该向量可以用作键。所以当我们使用向量作为键时。这实际上是如何工作的,因为键需要是唯一的,所以当我们插入另一个具有相同元素的向量时,会map逐个元素检查重复元素还是向量的名称确实指定了一些东西?就像数组的名字代表基地址一样。因此数组可以用作键,因为在这种情况下基地址可以用作键,但是在向量的情况下键是什么。它是如何在内部工作的。
因为当我打印向量的名称时,我确实收到错误
vector<int> v;
cout<<v; //error
Run Code Online (Sandbox Code Playgroud)