问题列表 - 第33896页

选择性能最佳的容器(阵列)

这是关于容器的一个小问题,特别是数组.

我正在编写一个物理代码,主要操作一个大的(> 1 000 000)"粒子"集(double每个有6个坐标).我正在寻找最好的方法(在性能方面)来实现一个类,该类将包含这些数据的容器,并将为这些数据提供操作原语(例如实例化operator[]等).

如何使用此集合有一些限制:

  • 它的大小是从配置文件中读取的,在执行期间不会更改
  • 它可以被视为N(例如1 000 000)行和6列(每个存储一维坐标)的大二维数组
  • 在一个大循环中操作数组,访问每个"粒子/线"并使用其坐标进行计算,并将结果存储回该粒子,依此类推每个粒子,依此类推,每次迭代大循环.
  • 在执行期间不添加或删除新元素

第一个结论,因为对元素的访问基本上是通过逐个访问每个元素来完成的[],我认为我应该使用普通的动态数组.

我已经探讨了一些事情,我想对那些可以给我最好表现的人发表意见.

据我所知,使用动态分配的数组而不是a是没有优势的std::vector,因此double** array2d = new ..., loop of new, etc排除了类似的东西.

那么使用它是个好主意std::vector<double>吗?

如果我使用a std::vector,我应该创建一个像std::vector<std::vector<double> > my_array索引一样的二维数组my_array[i][j],或者这是一个坏主意,最好使用std::vector<double> other_array和访问它other_array[6*i+j].

也许这可以提供更好的性能,特别是当列的数量是固定的并且从一开始就知道.

如果您认为这是最佳选择,是否可以将这个向量包装为可以使用定义为other_array[i,j] // same as other_array[6*i+j]没有开销的索引运算符(如每次访问时的函数调用)访问它?

另一种选择,我到目前为止使用的是使用闪电战,特别是blitz::Array:

typedef blitz::Array<double,TWO_DIMENSIONS> store_t;
store_t my_store;
Run Code Online (Sandbox Code Playgroud)

我的元素被访问的地方:my_store(line, column);.

我认为在我的情况下使用Blitz没有多大优势,因为我逐个访问每个元素,如果我直接在数组上使用操作(如矩阵乘法),那么Blitz会很有趣,我不是.

你认为闪电战是好的,还是我的情况没用?

这些是我到目前为止考虑的可能性,但也许是最好的一个我还是另一个,所以不要犹豫,建议我其他的东西.

非常感谢您对此问题的帮助!

编辑:

从非常有趣的答案和评论下面看来,一个好的解决方案如下:

  • 使用一个结构particle(包含6个双打)或6个双打的静态数组(这避免使用二维动态数组)
  • 使用一个 …

c++

11
推荐指数
2
解决办法
918
查看次数

我可以获取vbscript以显示友好的错误消息吗?

我正在使用vbscript安装网络打印机,如果队列不存在或打印机服务器不可用,我想显示一个友好的错误,我可以使用VBScript吗?我的代码如下.

Dim net
Set net = CreateObject("WScript.Network") 
net.AddWindowsPrinterConnection "\\printsrv\HPLaser23"
net.SetDefaultPrinter "\\printsrv\HPLaser23"
Run Code Online (Sandbox Code Playgroud)

非常感谢您的帮助

史蒂芬

vbscript

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

DataAnnotations动态附加属性

显然,可以在运行时动态地将DataAnnotation属性附加到对象属性,从而实现动态验证.

有人可以提供代码示例吗?

asp.net-mvc data-annotations

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

为什么不与Q_OBJECT宏进行编译(链接)?

我用PyQt制作了一个项目的原型并使其在那里工作,现在我正在尝试将其转换为C++并且遇到了一些问题.

如果我没有放入Q_OBJECT宏,它会编译并运行,但如果我将其注释掉,我会收到以下错误:

Undefined symbols:
  "vtable for MapView", referenced from:
      MapView::~MapView()in mapview.o
      MapView::~MapView()in mapview.o
      MapView::MapView(QObject*)in mapview.o
      MapView::MapView()in mapview.o
  "MapView::staticMetaObject", referenced from:
      MapView::MapView(QObject*)in mapview.o
      MapView::MapView()in mapview.o
Run Code Online (Sandbox Code Playgroud)

这是标题:

#ifndef MAPVIEW_H
#define MAPVIEW_H

#include <QtGui>
#include <QObject>

class MapView : public QGraphicsScene
{
    //Q_OBJECT

public:
    MapView();
    explicit MapView(QObject *parent = 0);
    QGraphicsPixmapItem *mappixmap;
    ~MapView();

private:
    bool dragging;
    float offsetX, offsetY, downoffsetX, downoffsetY;

protected:
    void mousePressEvent(QGraphicsSceneMouseEvent *event);
    void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);

};

#endif // MAPVIEW_H
Run Code Online (Sandbox Code Playgroud)

如果我在这里省略Q_OBJECT宏,那么第二个问题就是Bad Things会发生吗?

是的,我知道将QGraphicsScene称为"视图"是愚蠢的.

c++ linker qt qobject

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

Django Generic View - 访问请求

我正在使用django通用视图,如何在我的模板中访问请求.

网址:

file_objects = {
    'queryset' : File.objects.filter(is_good=True),
}
urlpatterns = patterns('',
    (r'^files/', 'django.views.generic.list_detail.object_list', dict(file_objects, template_name='files.html')),
)
Run Code Online (Sandbox Code Playgroud)

django django-generic-views

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

快速,线程安全的Python ORM?

你能为Python推荐一款高性能,线程安全且稳定的ORM吗?我需要处理的数据并不复杂,因此SQLAlchemy可能是一种过度杀伤力.

python orm

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

用于基本CRUD的PHP快速骨架生成器?

我的任务是建立一个简单的基于Web的系统来管理车辆列表.

我很想知道是否有任何健壮,干净的PHP 5框架/库专门快速完成这项工作.

他们应该能够使用基本功能快速构建任意数据结构的框架Web后端:

  • 可自定义的列表视图
  • 可自定义的编辑表单
  • 创建/更新/删除操作

很高兴有:

  • 多用户界面
  • 基于ACL的权限系统
  • 本土化
  • 内置图像/文件上传

湿梦:

  • 用于以编程方式管理项目的框架CRUD API
  • 用于通知新项目的骨架RSS提要

我知道大多数大框架为此提供了工具和帮助,但更喜欢一个易于进入的独立,轻量级解决方案.

或者,是否有一个很棒的PHP应用程序,您建议您根据我的需要进行修改?

php frameworks crud

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

JavaScript和getElementById用于具有相同ID的多个元素

如何通过指定元素来获取元素集合id?我想获得idhtml中具有相同标签的所有标签的名称.

我想只使用getElementById()一个元素数组.我怎样才能做到这一点?

javascript

46
推荐指数
6
解决办法
19万
查看次数

JEE6如何在Observer和Observee之间建立联系(观察者模式)

我已经阅读了一些关于JEE6上Observer模式实现的博客文章,还有什么困扰我......我找不到任何信息,所以我问那里......

我发现了以下例子:

@Stateless
[...]
public class ParisJugService {

   @Inject
   Event event;

   public void helloParis(){
        System.out.println("Hello Paris");
        event.fire("hello Paris invoked!");
   }
}

@Stateless
public class EventReceiver {

    public void onHelloParis(@Observes String message){
        System.out.println("----------- " + message);
    }
}
Run Code Online (Sandbox Code Playgroud)

public class MyEvent {
    String data;
    Date eventTime;
    ....

}

public class EventProducer {

  @Inject @Any Event<MyEvent> event;


  public void doSomething() {
       MyEvent e=new MyEvent();
      e.data="This is a test event";
      e.eventTime=new Date();
      event.fire(e);

  }

}


public class EventConsumer {


    public void afterMyEvent(@Observes …
Run Code Online (Sandbox Code Playgroud)

java ejb cdi java-ee-6 ejb-3.1

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

DateTime.UtcNow和DateTime.Now.ToUniversalTime()之间的区别是什么

对我来说,他们都是一样的.UtcNow只是一条捷径吗?

c#

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