小编Ale*_*tes的帖子

基于其值的自定义排序向量

我有以下向量:

std::vector< std::pair<int, int> > vectorOfPairs
Run Code Online (Sandbox Code Playgroud)

包括以下项目:

0, 1
0, 2
1, 4
2, 3
3, 4
4, 5
5, 6
Run Code Online (Sandbox Code Playgroud)

我想以一种方式对它们进行排序,即每对中的第二个分量等于向量中最近对的第一个分量,如下所示:

0, 1
1, 4
4, 5
5, 6
0, 2
2, 3
3, 4
Run Code Online (Sandbox Code Playgroud)

我不知道这是否足够明显,我会附上一张图片,显示我正在尝试做的事情:

在此输入图像描述

我觉得我应该使用sort某种比较器,但我迷失在这里:

std::sort(vectorOfPairs.begin(), vectorOfPairs.end(), MyComparator);
Run Code Online (Sandbox Code Playgroud)
bool MyComparator(pair<int, int> a, pair<int, int> b) {
    if(some_kind_of_comparison){
        return true;
    } 
    return false;
}
Run Code Online (Sandbox Code Playgroud)

我是c ++的新手,如果有人可以帮我解决如何做到这一点的伪代码,我将非常感激.

c++ vector std-pair

15
推荐指数
1
解决办法
645
查看次数

PrintWriter何时自动打印到文件?

在使用PrintWriter和文件后,我怀疑为什么有时当我在创建文件时立即读取文件时,存在不一致之处,例如:

File file = new File("Items.txt");
int loopValue = 10;
try {
    PrintWriter fout = new PrintWriter(file);
    for (int i = 0; i < loopValue; i++) {
        fout.print(i + " asdsadas" + System.lineSeparator());
    }
    //fout.flush(); <-- I know if I call flush or close this problem don't occur
    //fout.close();

    System.out.println("Here is the file:");
    Scanner readFile = new Scanner(file);
    while (readFile.hasNext()) {
        System.out.println(readFile.nextLine());
    }
} catch (FileNotFoundException e) {
    System.err.println(e.getMessage());
}
Run Code Online (Sandbox Code Playgroud)

如果我运行此代码,我将在控制台中读取一个空文件,如下所示:

Here is the file:
Run Code Online (Sandbox Code Playgroud)

但是如果我修改为loopValue10000之类的东西,我会有这样的东西: …

java

5
推荐指数
1
解决办法
411
查看次数

JBox2D和libGDX Box2D有什么区别

我正在研究libGDX,并在我的游戏中使用Box2D进行简单的2D物理交互.但是,最近我发现存在一个名为JBox2D的库.

这两个图书馆有什么区别吗?彼此之间的优势是什么?

我知道它们都基于用于c ++ 的Box2D库,因为:

libgdx中的Box2D实现是围绕C++引擎的瘦Java包装器.


JBox2d是C++物理引擎LiquidFun和Box2d的Java端口.

但是,他们的意思是端口和包装?JBox2D比Box2D更完整吗?哪一个更快?

我问这个是因为我想知道将我的项目从一个改为另一个(在这种情况下从Box2D到JBox2D)可以影响或优化我的游戏性能.

java jbox2d libgdx

3
推荐指数
1
解决办法
2073
查看次数

我怎么知道我的JFrame当前是否最小化?

我已经阅读了这个问题,并且为了获得JFrame的当前“状态”,我添加了一个属性,例如:

private static boolean isMinimized = false;
Run Code Online (Sandbox Code Playgroud)

然后使用WindowsListener我改变这个“属性”中windowIconified()windowDeiconified()方法,但我觉得我失去了一些东西。

类中是否有一个属性JFrame可让我知道我的应用程序当前是否已最小化?喜欢... myFrame.isMinimized()还是myFrame.isIconified()

我觉得这是一个非常简单的问题,我想这已经有了一个明显的答案,因此,如果是这样,请随时将其标记为重复。

java swing jframe

1
推荐指数
1
解决办法
133
查看次数

在多个类的数组中从同一个类中删除对象的简洁方法

假设我有一个包含以下元素的数组:

List<Object> objects = new ArrayList<>();
objects.add(1);
objects.add("one");
objects.add("two");
objects.add(new Object());
objects.add(2);
Run Code Online (Sandbox Code Playgroud)

删除同一类别的某些对象有减少的方法吗?

例如,如果我只想删除字符串,我知道我可以这样做:

for (Iterator<Object> it = objects.iterator(); it.hasNext();){
    if(it.next() instanceof String) {
        it.remove();
    }
}
Run Code Online (Sandbox Code Playgroud)

但这是最简单的方法吗?我想我可以做到,java-8但我不太确定.谢谢!

java

0
推荐指数
1
解决办法
104
查看次数

标签 统计

java ×4

c++ ×1

jbox2d ×1

jframe ×1

libgdx ×1

std-pair ×1

swing ×1

vector ×1