小编Set*_*eth的帖子

使用boost :: random并获得相同的数字序列

我有以下代码:

Class B {

void generator()
{
    // creating random number generator
    boost::mt19937 randgen(static_cast<unsigned int>(std::time(0)));
    boost::normal_distribution<float> noise(0,1);
    boost::variate_generator<boost::mt19937, 
        boost::normal_distribution<float> > nD(randgen, noise);


    for (int i = 0; i < 100; i++)
    {
        value = nD();
        // graph each value
    }
}
};

Class A {

void someFunction()
{
    for(int i = 1; i <=3; i++)
    {
        std::shared_ptr<B> b;
        b.reset(new B());
        b->generator();
    }
}
};
Run Code Online (Sandbox Code Playgroud)

我希望快速连续多次执行上面的代码,以生成多个图形.我还回顾了这个类似的stackoverflow问题,但有一点需要注意,当使用time(0)并快速连续调用成员函数时,你仍然可能得到相同的数字序列.

我怎么能克服这个问题?

编辑:我已经尝试在B类中制作randgen静态,也尝试使它成为A类中的全局变量,但每次3个图形仍然相同.我也试过从GetSystemTime毫秒播种.我肯定错过了什么.

c++ random

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

浮点标准之间的转换

我正在尝试将基于 IEEE 的浮点数转换为 MIL-STD 1750A 浮点数。

我已附上两者的规格: 替代文本

我了解如何按照维基百科上的示例分解 IEEE 格式的浮点 12.375

但是,我不确定我对 MIL-STD 的解释是否正确。

12.375 = (12)b10 + (0.375)b10 = (1100)b2 + (0.011)b2 = (1100.011)b2 (1100.011)b2 = 0.1100011 x 2^4 => 指数,E = 4。

4 标准化 2 的补码 = (100)b2 = 指数

因此,MIL-STD 1750A 32 位浮点数为:

S=0, F=11000110000000000000000, E=00000100
Run Code Online (Sandbox Code Playgroud)

我的上述解释正确吗?

对于-12.375,只是交换符号位吗?IE:

S=1, F=11000110000000000000000, E=00000100
Run Code Online (Sandbox Code Playgroud)

或者小数部分会发生什么奇怪的事情吗?

c++ floating-point ieee-754

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

智能指针是否可以进行切片?

如果我理解切片正确,我不认为这可能发生指针或智能指针.例如,如果你有:

class A
{
int something;
};

class B : public A
{
int stuff;
int morestuff;
};

int main()
{
    std::shared_ptr<B> b(new B());
    std::shared_ptr<A> a;
    a = b;
}
Run Code Online (Sandbox Code Playgroud)

我的理解是,分配给"b"所指向的对象的内存块仍然相同,并且在分配给智能指针"a"时不会改变.

请确认或拒绝我的理解,或让我知道与此相关的任何陷阱.

c++ pointers smart-pointers object-slicing

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

如何将System :: WideString转换为char*,反之亦然?

我有一种情况需要将a char*与a 进行比较WideString.
如何在C++中将WideString转换为char*?

c++ c++builder char widestring

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

在WPF浮动撕下选项卡中托管Win32窗口

我目前在WPF中托管Win32 OSG(基于OpenGL构建)控件。我正在使用telerik扩展坞。当窗格与MainWindow停靠在一起时,一切正常。但是,当我撕下标签时,不会在撕下标签中重新创建OSG图形

我是子类化HwndHost,用于CreateWindowEx创建本机Win32主机并返回本机句柄(请参见下面的代码)。然后,我将该句柄传递给由用户控件托管的本机OSG代码。

    // inside my ControlHost class which derives from HwndHost
    protected override HandleRef BuildWindowCore(HandleRef hwndParent)
    {
        hwndControl = IntPtr.Zero;
        hwndHost = IntPtr.Zero;

        hwndHost = CreateWindowEx(0, "MDIClient", "",
                                  WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN,
                                  0, 0,
                                  hostHeight, hostWidth,
                                  hwndParent.Handle,
                                  (IntPtr)HOST_ID,
                                  IntPtr.Zero,
                                  0);
        return new HandleRef(this, hwndHost);
    }
Run Code Online (Sandbox Code Playgroud)

调试到上述方法时,如预期的那样,hwndParent.handle当选项卡停靠在主窗口中时,该参数是WPF MainWindow的句柄。但是,当我拉出选项卡并将其变成浮动选项卡时,该hwndParent.handle属性是我无法在Spy ++中找到的值。Spy ++的浮动标签“ hwnd”值与上述方法产生的值相同。我怀疑这可能是OSG图形未显示的原因。

我的问题是:

  1. 我本来就知道使用WPF,每个Window对象都只有一个HWND,但是这如何与停靠库中的浮动面板一起使用?浮动面板实际上是作为基础对象还是用户控件的窗口?

  2. 有什么想法为什么我的本机OSG图形未显示在浮动撕下标签上?它与传入的父句柄有关吗?

c# wpf winapi

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

Builder模式是否替换工厂模式?

我知道很多次都会问这个问题,但我只是想澄清一下这个问题.构建器模式可以替换工厂模式.

是构建器模式逐步创建并返回复杂对象,这也可以在工厂模式中完成.

design-patterns builder-pattern

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

在Codegear RAD Studio中缩进

有没有办法在Codegear RAD Studio IDE中的一个动作中缩进/标注多行?

即我希望能够突出显示多行并同时将它们全部缩进一个标签.

c++ c++builder indentation

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

#pragma曾经是c ++ builder的等价物

#pragma onceCodegear RAD Studio 2009 有什么相同的东西吗?

我正在使用预编译头向导,我想知道在包含头文件时是否仍然需要使用包含保护?

c++ precompiled-headers c++builder-2009

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

SQL Compact 2008连接字符串问题

我有以下代码连接到sql server compact edition 2008:

    private SqlConnection sqlConn;

    public void createConnection()
    {
        String connectionString = @"Data Source=C:\Projects\somefile.sdf;Persist Security Info=False";
        sqlConn = new SqlConnection(connectionString);
        sqlConn.Open();
    }
Run Code Online (Sandbox Code Playgroud)

但是,sqlConn.Open()执行时我不断收到以下错误:

"建立与SQL Server的连接时发生与网络相关或特定于实例的错误.未找到服务器或无法访问服务器.验证实例名称是否正确以及SQL Server是否配置为允许远程连接.(提供程序: SQL网络接口,错误:26 - 找到指定的服务器/实例时出错)"

有没有人有任何想法可能是什么问题?我可以在数据库资源管理器中创建与数据库的连接,但它似乎不能在代码中工作.

c# sql-server connection-string

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

将shared_ptr与堆栈上创建的对象进行比较

我有一种情况,我想比较一个shared_ptr封装的对象与堆栈上创建的相同类型的对象.目前,我正在获取原始指针并取消引用它来进行比较,例如:

Object A;
std::shared_ptr<Object> B;

// assume class Object has its comparison operators overloaded
if ( *B.get() < A )
    // do stuff here
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?这假设当两个对象相遇以便相互比较时,一个是shared_ptr而另一个不是.

c++ smart-pointers

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

我应该将全局应用程序详细信息放在静态类中吗?

我目前正在维护一个遗留的C++应用程序,它将所有全局应用程序详细信息放在一个静态类中,存储的一些变量是:

  • 应用名称
  • 注册表路径
  • 版本号
  • 公司名称等..

存储和访问系统应用程序详细信息的推荐方法是什么?

c++

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

使用Where无效的Linq查询

我有以下代码:

    public ActionResult Details(int orderId)
    {
        var query = from orderDetails in storeDb.OrderDetails
                    where orderDetails.OrderId = orderId
                    select new { orderDetails.Product, orderDetails.Quantity, orderDetails.UnitPrice };

        return View(query);
    }
Run Code Online (Sandbox Code Playgroud)

我想得到orderDetails的行,其中外键OrderId等于参数orderId.但是我不断收到以下错误:Error 2 Cannot implicitly convert type 'int' to 'bool'.我错过了什么?

c# linq

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