小编Mar*_*aux的帖子

Java + Eclipse:同步stdout和stderr

我用Eclipse.当我有这样的应用程序时:

write 20 times 'Hello World\n' to stdout
write 'ERROR\n' to stderr
write 5 times 'Hello  World\n' to stdout
Run Code Online (Sandbox Code Playgroud)

输出看起来很多次像这样:

Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
...
Hello World
Hello World
Hello World
ERROR
Run Code Online (Sandbox Code Playgroud)

有没有办法同步这两个输出流?当然,在20次块之后Hello World等待几毫秒并且在打印之后等待几毫秒ERROR.

java eclipse synchronization stdio

10
推荐指数
3
解决办法
3024
查看次数

游戏开发:如何限制FPS?

我正在写一个游戏,我看到FPS算法不能正常工作(当他需要计算更多时,他睡得更久......)所以,问题很简单:如何计算睡眠时间以获得正确的FPS ?

我知道在一微秒内更新游戏需要多长时间,当然还有我希望达到的FPS.

我正在疯狂寻找一个简单的例子,但我找不到一个......

代码可能是Java,C++或伪....

c++ java algorithm frame-rate

10
推荐指数
2
解决办法
9971
查看次数

C++:从堆栈内存返回std :: string引用

我将首先说我已经阅读了这个主题:C++返回引用/堆栈内存.但在那里,问题是std::vector<int>作为对象类型.但我虽然行为std::string不同.这个类是不是特别为使用字符串而不必担心内存泄漏和错误的内存使用?

所以,我已经知道这是错的:

std::vector<t> &function()
{
    vector<t> v;
    return v;
}
Run Code Online (Sandbox Code Playgroud)

但这也错了吗?

std::string &function()
{
    string s = "Faz";
    s += "Far";
    s += "Boo";
    return s;
}
Run Code Online (Sandbox Code Playgroud)

谢谢


额外的问题(编辑):所以,我是正确的,当我说回(按价值计算)std::string不复制的字符序列,只有一个指向char *数组和t_size用于长度是多少?

如果这个语句是正确的,这是创建字符串深层副本的有效方法(避免替换会改变字符串)吗?

string orig = "Baz";
string copy = string(orig);
Run Code Online (Sandbox Code Playgroud)

c++ memory-management reference

10
推荐指数
3
解决办法
2万
查看次数

C++:奇怪的行为:return语句的返回值更改

我的申请面临一种非常奇怪的行为.

我将描述我的情况,然后解释出现了什么问题.

情况

我有一个像这样的签名的方法:

const StructureDef *getStructure(const std::string &theme, int index);
Run Code Online (Sandbox Code Playgroud)

我在这段代码中称它为:

const StructureDef *sDef = 0;
do 
{
    sDef = ss->getStructure(theme, rand() % ss->availableStructureCount());
} while (!sDef);
Run Code Online (Sandbox Code Playgroud)

我用这个做,而结构,因为返回值getStructure的方法可能是NULL,这取决于组合themeindex.所以基本上,它的作用是在我们获得有效结构之前询问随机结构.(如果您想了解详细信息,请查看截图.)

该方法迭代std::vector<StructureDef>使用它::iterator.对于每个StructureDef,它会检查结构是否属于该主题.如果是,则增加计数器并检查它是否等于请求的索引.像这样:

// inside the loop
if (i++ == index)
Run Code Online (Sandbox Code Playgroud)

如果成功,StructureDef *则返回当前值:

return sDef;
Run Code Online (Sandbox Code Playgroud)

出了什么问题

我正在使用XCode 4.4它的调试器来逐步查看正在发生的事情,这基本上就是gdb.

我先解释的方法,找到StructureDef *符合我需要的方法.所以它返回指针.这是在调试器中返回之前的瞬间截图:

调试器中的返回点

(简单地说for-loop之后的行return 0;)

这里指针sDef *指向0x1d563270,这是正确的实例所在的StructureDef位置.

下一个屏幕截图是我在调用该方法的代码段中得到的:

来电者得错地址

如您所见,sDef …

c++ memory-management return undefined-behavior

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

在Linux上替代JFileChooser?

我不喜欢Linux中这种丑陋的FileChooser布局.

在此输入图像描述

这种布局被任何其他程序使用,并且更加美观.

截图

这个布局是用Java吗?如果是这样,怎么样?

java linux swing jfilechooser

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

使图像适合矩形

如果我有一张我知道高度和宽度的图像,我怎样才能将它放在一个尺寸最大的矩形中,而不会拉伸图像.

伪代码就足够了(但我将在Java中使用它).

谢谢.


所以,基于答案,我写了这个:但它不起作用.我做错了什么?

double imageRatio = bi.getHeight() / bi.getWidth();
double rectRatio = getHeight() / getWidth();
if (imageRatio < rectRatio)
{
    // based on the widths
    double scale = getWidth() / bi.getWidth();
    g.drawImage(bi, 0, 0, (int) (bi.getWidth() * scale), (int) (bi.getHeight() * scale), this);
}
if (rectRatio < imageRatio)
{
    // based on the height
    double scale = getHeight() / bi.getHeight();
    g.drawImage(bi, 0, 0 , (int) (bi.getWidth() * scale), (int) (bi.getHeight() * scale), this);
}
Run Code Online (Sandbox Code Playgroud)

java image max

9
推荐指数
2
解决办法
5620
查看次数

编程竞赛问题:计数多项式

请看我自己的答案,我想我做到了!


嗨,

编程竞赛的一个示例问题是编写一个程序,找出给定数量的宝石可能有多少多边形.

所以对于两块石头(n = 2),只有一个多面体:

XX
Run Code Online (Sandbox Code Playgroud)

您可能认为这是第二种解决方案:

X
X
Run Code Online (Sandbox Code Playgroud)

但事实并非如此.如果您可以旋转它们,则polyominos不是唯一的.

因此,对于4个宝石(n = 4),有7个解决方案:

X
X   XX   X    X     X   X
X   X    XX   X    XX   XX   XX
X   X    X    XX   X     X   XX
Run Code Online (Sandbox Code Playgroud)

应用程序必须能够找到解决方案 1 <= n <=10

PS:不允许在维基百科上使用polyominos列表 ;)

编辑:当然问题是:如何在Java,C/C++,C#中做到这一点


我用Java开始这个项目.但后来我不得不承认我不知道如何使用有效的算法构建多边形.

这是我到目前为止所做的:

import java.util.ArrayList;
import java.util.List;


public class Main
{

    private int countPolyminos(int n)
    {
        hashes.clear();
        count = 0;
        boolean[][] matrix = new boolean[n][n];
        createPolyominos(matrix, n);
        return count;
    }

    private …
Run Code Online (Sandbox Code Playgroud)

c# c++ java algorithm

9
推荐指数
2
解决办法
2105
查看次数

Java泛型和返回类型

我碰到了一些我不理解的东西.当第二个相同的时候,为什么不是每个循环都合法?

public interface SomeInterface<T> {
   List<SomeNamedObject> getObjects();
   void doSomething(P1 p1, T p2);
}

public class SomeNamedObject {
    private String text;
}

public class Clazz {

    private SomeInterface someInterface;

    ...

    public void someMethod() {
       // Error Type mismatch: cannot convert from element type Object to TestClass.SomeNamedObject
       for (SomeNamedObject someNamedObject :  someInterface.getObjects()) {
             // This loop won't compile as the someInterface.getObjects returns just a List and not a List<SomeNamedObject>
       }

       // Warning Type safety: The expression of type List needs unchecked 
       // …
Run Code Online (Sandbox Code Playgroud)

java generics

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

是否有需要多个所有者的智能指针类型?

std::shared_ptr当引用计数达到0时,A 会破坏它正在管理的对象.但是,我正在寻找一种智能指针,当引用计数低于2时,对象会被销毁.是否存在一个类似于此的智能指针(或我能以一种安全的方式使智能指针表现得像这样吗?

用例场景:我正在建模连接.连接由它连接的两个端点拥有(如"智能指针所有权").只要其中一个端点被破坏,连接也应该被销毁.

我知道我可以delete通过适当的析构函数中的经典语句来实现这一点(因为在这种情况下我的"低于2"的要求非常简单).但我认为这是一种智能指针的有效用例,我很想知道我是否可以用现代方式做到这一点.

c++ smart-pointers c++11

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

Java:如何从String创建RSA公钥

我有RSA公钥的字节数组.我在互联网上发现我可以使用以下代码创建一个真正的PublicKey对象:

PublicKey publicKey = 
    KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(bytes));
Run Code Online (Sandbox Code Playgroud)

但每次运行此代码时,我都会使用该密钥获取加密数据的另一个结果.我确定我要加密的数据总是相同的,表示密钥的字节数组也是如此.

这是正常的吗?

这是我的代码总是产生另一个输出:

byte[] keyBytes = Base64.decodeBase64(rsa_1024_public_key);
      // rsa_1024_public key is a constant String

Cipher c = Cipher.getInstance("RSA");

PublicKey publicKey =
   KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(keyBytes));

c.init(Cipher.ENCRYPT_MODE, publicKey);

return c.doFinal(password.getBytes());
Run Code Online (Sandbox Code Playgroud)

这可能是非对称加密算法的一部分?

谢谢.

java rsa encryption-asymmetric

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