小编mos*_*ald的帖子

加权随机数

我正在尝试实施加权随机数.我现在只是把头靠在墙上,无法解决这个问题.

在我的项目(德州扑克手牌范围,主观全权证券分析)中,我正在使用Boost的随机函数.所以,假设我想选择1到3之间的随机数(所以要么是1,2或3).Boost的mersenne twister发电机就像这样的魅力.但是,我希望选择加权,例如:

1 (weight: 90)
2 (weight: 56)
3 (weight:  4)
Run Code Online (Sandbox Code Playgroud)

Boost是否具有某种功能?

c++ random boost

89
推荐指数
4
解决办法
6万
查看次数

如何最好地将Type类型的JArray转换为类型数组?

我有一个JArray代表json子串的代码[1,2,3].我想把它变成一个int[].

这样做的正确方法是什么?我到目前为止找到的最好方法是执行以下操作:

int[] items = new int[myJArray.Count];

int i = 0;
foreach (int item in myJArray)
{
    items[i++] = item;
}
Run Code Online (Sandbox Code Playgroud)

c# json.net

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

如何将mercurial repo(包括历史)导入另一个mercurial repo作为子目录,而不使用subrepos?

这听起来有点复杂,所以让我解释一下:

Project_A已在其自己的Mercurial存储库中存活了一段时间.Project_A现在正在进入一个新的超级项目Super-Project_B.Super-Project_B也有一个mercurial存储库.我们希望Project_A不是一个subrepo,而只是一个普通的孩子,但我们也不想失去历史.有没有办法做到这一点?

mercurial

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

System.Drawing.Color和System.Windows.Media.Color有什么区别?

基本上,为什么需要一个非常简单的概念的两个抽象?

.net

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

如果switch(enum_val)缺少case语句,有没有办法让C#编译器发出错误?

我刚刚意识到我在枚举中的"必须处理"值列表中添加了一个值,但直到运行时我才抓到它.我知道C#编译器在涉及类型的反射和内省时非常强大,所以我想知道是否有办法强制switch/ case语句覆盖所有可能的enum值?

例:

enum Colors
{
   Red,
   Blue,
   Green,
   Yellow
};

Colors c = ...;

switch (c)
{
   case Colors.Red:  // No error, Red is a Color
      break;
   case Colors.Blue:
   case Colors.Green:  // No error, Blue and Green handled as well
      break;
}  // whoops! "error: 'Colors.Yellow' unhandled"
   // or even, "error: no 'default' and 'Colors.Yellow' unhandled"
Run Code Online (Sandbox Code Playgroud)

我想要一个编译时的解决方案.

c#

22
推荐指数
2
解决办法
1827
查看次数

了解右值参考

我认为我对rvalue引用并不十分了解.为什么以下错误无法编译(VS2012)'foo' : cannot convert parameter 1 from 'int' to 'int &&'

void foo(int &&) {}
void bar(int &&x) { foo(x); };
Run Code Online (Sandbox Code Playgroud)

我会假设int &&从bar传递到foo时将保留该类型.为什么它会int在函数体内转换成一次?

我知道答案是使用std::forward:

void bar(int &&x) { foo(std::forward<int>(x)); }
Run Code Online (Sandbox Code Playgroud)

所以也许我只是没有清楚地掌握原因.(另外,为什么不std::move呢?)

c++ rvalue-reference c++11

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

你能否为特定位置包含的任何标题关闭(特定)编译器警告?

我有一个第三方库,即使在/ W3下也会产生大量警告.有没有办法让我告诉编译器,"为此目录或其子目录中包含的任何文件禁用C4244"?当然,我不想在我们自己的代码库中禁用警告,也不想跟踪每个可能的包含并用它包装它#pragma warning(...

c++ visual-studio-2008 visual-studio

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

ATI/NVIDIA驱动程序的调试版本(或符号文件)是否可用?

我甚至不关心它们是否是真正的"调试"版本,我真正想要的只是符号文件,这样当我进入调试器时,我的callstack不会变得无效.

debugging graphics debug-symbols

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

Json.Net无法序列化为流,但可以很好地序列化为字符串

在内部,JsonConvert.SerializeObject(obj, Formatting.Indented)归结为

JsonSerializer jsonSerializer = JsonSerializer.Create(null);
StringWriter stringWriter = new StringWriter(new StringBuilder(256), (IFormatProvider) CultureInfo.InvariantCulture);
using (JsonTextWriter jsonTextWriter = new JsonTextWriter((TextWriter) stringWriter))
{
  jsonTextWriter.Formatting = formatting;
  jsonSerializer.Serialize((JsonWriter) jsonTextWriter, value);
}
return stringWriter.ToString();
Run Code Online (Sandbox Code Playgroud)

这很好用.但是,如果我执行以下操作:

string json;

JsonSerializer jsonSerializer = JsonSerializer.Create();

using (var stream = new MemoryStream())
using (var streamWriter = new StreamWriter(stream, Encoding.UTF8))
using (var jsonWriter = new JsonTextWriter(streamWriter))
{
    serializer.Serialize(jsonWriter, cmd);

    stream.Position = 0;
    using (var reader = new StreamReader(stream))
    {
        json = reader.ReadToEnd();
    }
}
Run Code Online (Sandbox Code Playgroud)

随后的值json是 …

.net c# json.net

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

C++ lambdas没有正确选择重载函数吗?

我有一个迭代容器的函数,并将每个元素传递给谓词进行过滤.此函数的重载也会将每个元素的索引传递给谓词.

template<typename TContainer>
void DoSomethingIf(TContainer &c, std::function<bool (const typename TContainer::const_reference)> predicate);

template<typename TContainer>
void DoSomethingIf(TContainer &c, std::function<bool (const typename TContainer::const_reference, int)> predicate);
Run Code Online (Sandbox Code Playgroud)

我发现尝试使用裸lambda 调用这些函数中的任何一个将导致VC11中的编译器错误,而使用std :: function对象将成功:

void foo()
{
    std::vector<int> v;

    // fails
    DoSomethingIf(v, [](const int &x) { return x == 0; });

    // also fails
    auto lambda = [](const int &x) { return x == 0; };
    DoSomethingIf(v, lambda);

    // success!
    std::function<bool (const int &)> fn = [](const int &x) { return x == 0; };
    DoSomethingIf(v, …
Run Code Online (Sandbox Code Playgroud)

c++ lambda visual-c++ c++11 visual-c++-2012

12
推荐指数
2
解决办法
1652
查看次数