所以我想使用最小的键作为优先级,然后返回对应键的值:
import javafx.util.Pair;
import java.util.PriorityQueue;
public class Test
{
public static void main (String[] args)
{
int n = 5;
PriorityQueue <Pair <Integer,Integer> > l = new PriorityQueue <Pair <Integer,Integer> > (n);
l.add(new Pair <> (1, 90));
l.add(new Pair <> (7, 54));
l.add(new Pair <> (2, 99));
l.add(new Pair <> (4, 88));
l.add(new Pair <> (9, 89));
System.out.println(l.poll().getValue());
}
}
Run Code Online (Sandbox Code Playgroud)
我寻找的输出是 90,因为 1 是最小的键。即使将该值用作优先级并返回键也很好,因为我可以在必要时交换数据。我想使用值/键作为优先级(在这种情况下是最小值)来显示键/值。我不知道在这种情况下如何做到这一点。这在 C++ 中工作正常。
初学者在这里。我用 C atm 编码。所以我刚刚开始使用 VS 2019。一路上遇到了一些麻烦,但我遇到了构建错误以及 LNK 2005 和 LNK 1169。结果我不能在同一个项目中拥有多个文件。特别是如果我在文件中使用相同的标头。在本例中是 stdio.h 和 math.h。我多次重新创建了这个。仅当项目中存在一个文件时,代码才能顺利编译。或者至少只有一个具有该特定标头的文件。这几乎阻止了我在同一个项目下拥有多个 C 源文件。那么有没有什么方法可以在同一个项目中拥有多个文件而不会出现这些错误。
有点烦人的是我不能有多个具有相同标头的文件,这显然是不可能的,因为显然我必须在任何地方使用 stdio.h 。在此输入图像描述