小编jav*_*red的帖子

c#/ boost模拟的C#BlockingCollection?

我喜欢C#线程安全BlockingCollection,它允许我使用TakeTryTake方法“阻止”直到有新项可用,例如,最大阻止时间为1秒:orderActions.TryTake(out oa, 1000);

什么是c ++ / boost模拟BlockingCollection

c++ boost

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

设置为添加/删除的平均O(1)和最差/最小O(log n)

我可以有一个平均添加/删除操作为O(1)的集合(这对于基于哈希表的集合来说是典型的),最差的最大/最小值小于O(n),可能是O(log n)(典型的树 - 基础集)?

更新似乎在最简单的情况下,我可以在每次最大/最小消失时重新扫描所有N个元素,并且通常它给我O(1).但我将我的算法应用于股票交易,其中更接近最小/最大的变化更可能,所以我只是不想每次最大或最小消失时重新扫描所有内容,我需要比完全重新扫描更聪明的东西,它给出O(n).

upd2在我的情况下,set包含100-300个元素.最大/最小元素的变化很可能,因此max/min经常变化.我需要跟踪最大/分钟.我仍然想要添加/删除O(1).

algorithm data-structures

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

“直播”流的简单移动平均线 - 快速实施

在我的交易应用程序中,我有股票价格的“实时报价”。我需要维持 SMA。假设我想要 20 根蜡烛的 SMA,其中每根蜡烛的持续时间为 10 秒。这意味着

每 10 秒我就有一个“检查点”,其中:

  1. 我“关闭”当前蜡烛并存储最后 10 秒的平均价格。平均值为(最大值 - 最小值)/2
  2. 我“启动”新蜡烛并存储最后的价格。
  3. 我清理“过时的”蜡烛。

每一个刻度:

  1. 我更新当前“形成”蜡烛的“最后”价格并重新计算 SMA。

因此,在任何价格变动时我都需要“重新计算”SMA。在大多数情况下,只有最后一根蜡烛的价格发生变化(因为我们使用最后的价格)。每 10 秒一次,我需要多一点额外的工作 - 我需要“忘记”过时蜡烛的平均值,并“存储”“刚刚创建”蜡烛的平均值。

您能建议如何以最低的延迟实现这一点吗?低延迟是首要要求。

c++ algorithmic-trading

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

使用已删除的函数 - std :: atomic

这是我在.h文件中的声明:

static std::atomic<int> OrdersExecutorIdCounter;
Run Code Online (Sandbox Code Playgroud)

这是从.cpp文件启动的:

std::atomic<int> ActionBasedOrdersExecutor::OrdersExecutorIdCounter = 0;
Run Code Online (Sandbox Code Playgroud)

它在VC++中编译得很好,但是在gcc 4.8中我得到了这个错误:

error: use of deleted function ‘std::atomic<int>::atomic(const std::atomic<int>&)’
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

c++ gcc

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

如何隐藏向导中的"帮助"图像?

有人知道如何从我的自定义向导中隐藏这样的帮助图像吗? alt text http://img268.imageshack.us/img268/6485/newprojectwt.png

setHelpAvailable(false) 不工作,它隐藏"矩形帮助按钮",而不是这个图像.

谢谢

eclipse swt jface

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

只能在创建对象时分配的类属性?

在C#中可以这样写东西:

Instrument instr = new Instrument { ClassCode = "Hello", Ticker = "World" };
Run Code Online (Sandbox Code Playgroud)

但是要做到这一点,你必须set;在相应的类中添加:

class Instrument
{
    public string ClassCode { get; set; }
    public string Ticker { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

这意味着以后有人可能会意外地改变价值:

instr.ClassCode.set = "Destroy"
Run Code Online (Sandbox Code Playgroud)

我不想允许这样做.即,从一方面我想要一个只读属性,从另一只手我想创建这样的对象:

Instrument instr = new Instrument { ClassCode = "Hello", Ticker = "World" };
Run Code Online (Sandbox Code Playgroud)

我不确定这是否可行.可能我应该使用字段或其他东西而不是属性.我只想拥有最后一句的语法,但同时保持readonly.

upd:简而言之,不允许以任何方式使用readonly属性.在这种情况下应该使用常规构造函数和"get".

c#

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

jfilechooser更好看?

当我JFileChooser在Windows 7上的程序中使用应用程序时,它会显示这样的窗口:

金属JFileChooser

但是当我运行JWS文件选择器演示时,它会显示更好的窗口:

JWS文件选择器演示

为什么?

java swing jfilechooser

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

如何向FlowPanel添加边距?

我正在使用com.google.gwt.user.client.ui.FlowPanel小部件彼此非常接近.但是我无法弄清楚如何设置边距?

BTW可能有更好的布局?我只需要一个容器,用于逐个定位的几个Anchor.

gwt

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

如果我需要自定义getter/setter,我可以省略字段创建吗?

我可以写出如此美丽的直截了当的代码:

 public int Delta { get; private set; }
Run Code Online (Sandbox Code Playgroud)

现在我想只添加一个电话 OnPropertyChanged("Delta");

这是我知道如何做到这一点的唯一方法:

public int Delta { get { return _delta; } private set
{
    _delta = value; OnPropertyChanged("Delta"); }
}
private int _delta;
Run Code Online (Sandbox Code Playgroud)

这是太多的额外代码!为什么我要在这种情况下引入字段?你能让这段代码缩短吗?我想有类似的东西,但它不起作用:

 public int Delta { get; private set { OnPropertyChanged("Delta"); } }
Run Code Online (Sandbox Code Playgroud)

c#

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

为什么在有效的双输入上接收FormatException?

我收到FormatException,我不知道为什么.

System.FormatException was unhandled by user code
  Message=Input string was not in a correct format.
  Source=mscorlib
  StackTrace:
       at System.Number.ParseDouble(String value, NumberStyles options, NumberFormatInfo numfmt)
       at System.Convert.ToDouble(String value)
Run Code Online (Sandbox Code Playgroud)

代码行:

DELTA_BUY = Convert.ToDouble(parameters["DELTA_BUY"]);
Run Code Online (Sandbox Code Playgroud)

值(来自调试窗口):

parameters["DELTA_BUY"] "0.0016"    string
Run Code Online (Sandbox Code Playgroud)

upd在一个执行路径上工作正常但在另一个执行传递上失败(来自WCF时).双重可重复,与字符串一起使用.可能是格式/国有化问题?

c#

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