小编The*_*hin的帖子

第一个随机数总是小于休息

我碰巧注意到在C++中,使用std rand()方法调用的第一个随机数大部分时间都明显小于第二个.关于Qt实现,第一个几乎总是小几个量级.

qsrand(QTime::currentTime().msec());
qDebug() << "qt1: " << qrand();
qDebug() << "qt2: " << qrand();

srand((unsigned int) time(0));
std::cout << "std1: " << rand() << std::endl;
std::cout << "std2: " << rand() << std::endl;
Run Code Online (Sandbox Code Playgroud)

输出:

qt1:  7109361
qt2:  1375429742
std1: 871649082
std2: 1820164987
Run Code Online (Sandbox Code Playgroud)

这是因为播种错误还是错误?此外,当qrand()输出强烈变化时,第一个rand()输出似乎随时间线性变化.只是想知道原因.

c++ random qt

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

C++中静态和全局的替代方案?

我有一个类实例需要由其他一些类访问.

  • 将实例始终传递到构造链中会非常麻烦.
  • 我试图避免全局变量,因为人们倾向于反对这一点.
  • 我以为我声明这个实例是一个类的静态成员,然后包含这个类,以便访问该实例,但这不起作用

error: calling a private constructor of class 'Foo'

要在QGraphicsView框架的上下文中进一步指定问题:我想添加QGraphicsItems,它由控制器类(管理项目)实例化到QGraphicsScene,这是(但我不坚持这个细节)我的成员QMainWindow类.

我花了相当多的时间在互联网上搜索,但我相当新,我有点被困在这里.对于解决困境的最佳方法,我表示赞赏.

c++ static global qgraphicsitem qgraphicsscene

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

ROS 记录器禁用 Python 记录器

我在使用 Python 记录器和 rospy 记录器时遇到问题。一开始,ROS 节点初始化后,Python 记录器就停止记录。我尝试通过向记录器添加流处理程序来解决该问题。现在,它仅记录 ROS 节点是否已初始化。

我在ROS git中读到了有关 rospy 和 python 日志记录冲突的信息,但似乎没有很好的解决方案可以专门使用 python 记录器,并且独立于 ROS 记录器来处理我的代码。

一些模块初始化记录器:

    path = "/some_directory/"
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    logger = logging.getLogger('logger_name')

    # logging file handler for basic log infos
    file_handler_info = logging.FileHandler('{}log.log'.format(path))
    file_handler_info.setFormatter(formatter)
    file_handler_info.setLevel(logging.INFO)
    logger.addHandler(file_handler_info)

    # logging file handler for critical warnings
    file_handler_critical = logging.FileHandler('{}critical.log'.format(path))
    file_handler_critical.setFormatter(formatter)
    file_handler_critical.setLevel(logging.WARNING)
    logger.addHandler(file_handler_critical)

    # logging stream handler for console output
    stream_handler = logging.StreamHandler()
    stream_handler.setFormatter(formatter)
    stream_handler.setLevel(logging.DEBUG)
    logger.addHandler(stream_handler)
Run Code Online (Sandbox Code Playgroud)

启动 ROS 节点的其他模块 …

python logging ros rospy python-logging

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

初始化QGenericMatrix

我需要一个矩阵用于神经网络的矩阵乘法,因为我使用提供QGenericMatrix的Qt框架,我想我试一试.但我不知道如何用数据初始化矩阵.

它有这个构造函数,但我无法正确使用它.

QGenericMatrix::QGenericMatrix(const T * values)
Run Code Online (Sandbox Code Playgroud)

因此,如果有人可以给我一个示例初始化,例如

    QGenericMatrix<2,2,int> a();
Run Code Online (Sandbox Code Playgroud)

如果我搜索QGenericMatrix,除了官方的类定义之外几乎找不到任何东西,所以我想知道QGenericMatrix是否是一个不错的选择?

c++ qt matrix-multiplication

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

具有特征的稀疏随机矩阵

是否可以使用类似于我需要翻译的优雅 python 代码的 C++ Eigen 库制作(稀疏)矩阵?

(np.random.rand(100,100)  < 0.1) * np.random.rand(100,100)
Run Code Online (Sandbox Code Playgroud)

例如,一个矩阵填充了一定比例的随机值。

c++ python sparse-matrix eigen

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