我有以下向量:
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 ++的新手,如果有人可以帮我解决如何做到这一点的伪代码,我将非常感激.
在使用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)
但是如果我修改为loopValue
10000之类的东西,我会有这样的东西: …
我已经阅读了这个问题,并且为了获得JFrame的当前“状态”,我添加了一个属性,例如:
private static boolean isMinimized = false;
Run Code Online (Sandbox Code Playgroud)
然后使用WindowsListener我改变这个“属性”中windowIconified()
,windowDeiconified()
方法,但我觉得我失去了一些东西。
类中是否有一个属性JFrame
可让我知道我的应用程序当前是否已最小化?喜欢... myFrame.isMinimized()
还是myFrame.isIconified()
?
我觉得这是一个非常简单的问题,我想这已经有了一个明显的答案,因此,如果是这样,请随时将其标记为重复。
假设我有一个包含以下元素的数组:
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
但我不太确定.谢谢!