小编Ton*_*ony的帖子

可变长度的物体:永远是个好主意?

我的应用程序使用大量Panda对象.每个Panda都有一个Bamboo对象列表.Panda初始化后,此列表不会更改(不Bamboo添加或删除任何对象).目前,我的课程实现如下:

class Panda
{
    int a;
    int b;
    int _bambooCount;
    Bamboo* _bamboo;

    Panda (int count, Bamboo* bamboo)
    {
        _bambooCount = count;
        _bamboo = new Bamboo[count];

        // ... copy bamboo into the array ...
    }
}
Run Code Online (Sandbox Code Playgroud)

为了减轻分配Bamboo对象数组的开销,我可以按如下方式实现这个类 - 基本上,不是通过常规构造函数创建对象,而是构造方法分配一个内存块来保存Panda对象及其Bamboo数组:

class Panda
{
    int a;
    int b;

    Panda ()
    {
        // ... other initializations here ...
    }

    static Panda *createPanda (int count, Bamboo* bamboo)
    {
        byte* …
Run Code Online (Sandbox Code Playgroud)

c++ design-patterns class-design data-structures

8
推荐指数
3
解决办法
2024
查看次数

Qt Creator:"XYZ没有命名类型"

这在Qt Creator中是一个非常令人沮丧的错误信息: ’XYZ’ does not name a type.这通常意味着类中存在一个错误XYZ,导致编译器无法生成类型,但是没有关于出错的其他提示.

有什么建议?

c++ qt qt-creator

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

从字符串编译Java源代码?

有没有办法让正在运行的Java程序编译Java源代码(作为字符串传递)?

Class newClass = Compiler.compile ("class ABC { void xyz {etc. etc. } }");
Run Code Online (Sandbox Code Playgroud)

理想情况下,传入源代码引用的任何类都将由程序的类加载器解析.

这样的事情存在吗?

java compiler-construction

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

Java中的内存映射大文件

是否可以在Java中对大型文件(多个GB)进行内存映射?

这种方法FileChannel看起来很有希望:

MappedByteBuffer map(FileChannel.MapMode mode, long position, long size)
Run Code Online (Sandbox Code Playgroud)

双方positionsize允许64位值-到目前为止,那么好。

MappedByteBuffer,但是,仅提供用于32位位置(get(int index)position(int newPosition)等)的方法,这似乎暗示我无法映射大于2 GB的文件。

我如何解决这个限制?

java nio memory-mapped-files

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

后退/前进按钮和可用性

浏览器或类似浏览器的应用程序中的后退和前进按钮在时间上导航(用户导航页面的顺序),这可能不一定反映页面的逻辑顺序.有没有研究关注这会如何影响用户的心理模型?有关如何提高可用性和减少混淆的任何想法?

browser navigation usability user-interface back-button

7
推荐指数
2
解决办法
1450
查看次数

处理WebBrowser控件上的关键事件

WebBrowser在C#应用程序中使用该控件,并希望在WebBrowser具有焦点时处理所有关键事件,而不管个别内容元素(输入字段,链接等)是否聚焦.我试图简单地向浏览器控件KeyDown事件添加一个事件处理程序,但这不起作用.我不想明确地将处理程序挂钩到每个focusable HtmlElement.

如何在将所有关键事件传递到浏览器或其内容元素之前接收它们?

browser events webbrowser-control keydown

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

在Internet Explorer控件中禁用上下文菜单

如何禁用IE WebBrowser控件中的上下文菜单,而是在C#中执行右键单击事件的自定义处理?

.net c# events contextmenu webbrowser-control

7
推荐指数
2
解决办法
6156
查看次数

与平台无关的方式获取最大C++浮点值

获得可以存储float在C++中的最大值的最佳,独立于平台的方法是什么?

c++ floating-point

7
推荐指数
3
解决办法
3616
查看次数

在多个客户域上运行Google App Engine应用程序

我希望允许我公司的客户将我们的Google App Engine应用程序集成到他们的域中.例如,假设一个客户拥有该域名,coolcustomer.com并希望在以下位置访问我们的应用程序service.coolcustomer.com.

本文讨论如何在内部设置多租户,但未提及如何将客户端域与应用程序关联.

理想情况下,我希望允许客户以自助方式关联子域.当然,这会带来验证客户是否有权将子域添加到域名的问题.

实现这一目标的最佳方法是什么?

java subdomain google-app-engine domain-name multi-tenant

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

FileInputStream.read(byte [])有什么问题?

在回答我对文件阅读问题的回答时,一位评论者表示FileInputStream.read(byte[])"不能保证填补缓冲区".

File file = /* ... */  
long len = file.length();
byte[] buffer = new byte[(int)len];
FileInputStream in = new FileInputStream(file);
in.read(buffer);
Run Code Online (Sandbox Code Playgroud)

(代码假定文件长度不超过2GB)

除了IOException,什么可能导致该read方法无法检索整个文件内容?

编辑:

代码的概念(以及我回答的问题的OP的目标)是将整个文件一次性读入一块内存,这就是buffer_size = file_size的原因.

java fileinputstream java-io

7
推荐指数
2
解决办法
3736
查看次数