小编Fra*_*ank的帖子

Linux中的PCI总线负载测量

我有一个Linux(3.12)系统(x86-64),其中有多个设备连接到PCI总线(PCI-e)。我想测量当前情况下的PCI总线负载,并在将另一台设备连接到总线上以查看两者之间的差异时再次测量,但是我不知道如何。有没有办法做到这一点?

linux pci-bus

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

多层继承中的虚拟关键字

我有一个继承链,其中A类公开继承自B类,而B类又公开继承自C类.C类的析构函数标记为"虚拟".是否有人反对将B类和A类的析构者标记为虚拟?或者在这些情况下是否需要支付性能/内存损失?

c++ polymorphism

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

设置事件优先级

我正在QT中进行申请。我使用QExtSerialPort从我的comp的串行端口接收数据(无论何时发出readyread()信号)。我也有一些计时器以一定的间隔运行其他事情。现在我注意到,当定时器打开时,不是当定时器未打开时,并非readyread信号的所有数据都少很多。QT中是否有一种方法可以确保已接收到串行端口的所有数据?也许通过将readyread事件设置为高优先级或诸如此类?

qt serial-port priority-queue

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

获得qint64的最重要字节

在QT我有一个qint64.是否有一种简单的方法将其分成大小为int8_t?

为清楚起见,如果我有一个

qint64 a = [11001000 00001111 11110000 ... 11001100] 
Run Code Online (Sandbox Code Playgroud)

我想得到

int8_t a1=[11001000] 
int8_t a2=[00001111]
int8_t a3=[11110000] 
... 
int8_t a8=[11001100]
Run Code Online (Sandbox Code Playgroud)

c++ qt

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

如何将字符串添加到QCombobox

通常我会通过说:QCombobox添加项目:

QCombobox cbb;
cbb.addItem("Hello");
Run Code Online (Sandbox Code Playgroud)

但如果我尝试这个,我会收到一个错误:

QComboBox cbb;
QString * s = new QString("hallo");
cbb.addItem(s);

error: no matching function for call to 'QComboBox::addItem(QString*&)'
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

qt qcombobox

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

Python中二维数组的对数

我有一个名为矩阵的二维数组数组.其中的每个矩阵都是维度的1000 x 1000,由正值组成.现在我想记录所有矩阵中的所有值(0除外).
我如何在python中轻松完成此操作?
我有以下代码可以做我想要的,但是知道Python这可以更简单:

newMatrices = []
for matrix in matrices:
    newMaxtrix = []
    for row in matrix:
        newRow = []
        for value in row:
            if value > 0:
                newRow.append(np.log(value))
            else:
                newRow.append(value)
        newMaxtrix.append(newRow)
    newMatrices.append(newMaxtrix)
Run Code Online (Sandbox Code Playgroud)

python

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

在python中的numpy数组中查找符合条件的第一个元素的索引

我试图找到第一个大于阈值的元素的索引,如下所示:

index = 0
while timeStamps[index] < self.stopCount and index < len(timeStamps):
    index += 1
Run Code Online (Sandbox Code Playgroud)

这可以在一行中完成吗?我发现:

index = next((x for x in timeStamps if x <= self.stopCount), 0)
Run Code Online (Sandbox Code Playgroud)

我不确定这个表达式的作用,它似乎总是返回 0...有人可以指出错误并解释该表达式吗?

python indexing numpy python-3.x

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

C++ 中的前向声明 typedef 结构

我正在使用一个遗留库,它在 Foo.h 中定义了一个结构:

typedef struct { int i; int j; } Foo

然而,在我的 C++ 程序中,我尝试在头文件中写入以下内容。

// forward-declare the struct
struct Foo;

class Bar {
  void myFunction(std::shared_ptr<Foo> foo);
};
Run Code Online (Sandbox Code Playgroud)

在我的 cpp 文件中:

#include "Foo.h"

但是,这会失败并出现错误:

使用不同类型的 typedef 重新定义('struct Foo' 与 'Foo')

执行此操作的正确语法是什么?

c c++ struct typedef forward-declaration

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

在QT中发现错误

在QT-creator中我收到以下错误:

QVector :: operator []中的ASSERT失败:"索引超出范围",文件c:\ QtSDK\Desktop\Qt\4.8.1\mingw\include/QtCore/qvector.h,第359行

我的问题是它没有指定哪个QVector超出范围......即使我在调试模式下运行,我也找不到错误的位置.有没有办法轻松找到错误?代码非常庞大,错误只会偶尔弹出一次,所以检查我单独使用的每个qVector都需要做很多工作.

debugging error-handling qt

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

带有unique_ptr的C++堆栈

我有一个遗留程序,它使用std :: stack对象来存储一些指针.

std::stack<Widget*> widgetStack;
Run Code Online (Sandbox Code Playgroud)

现在我想将其更改为新的C++ 11样式

std::stack<std::unique_ptr<Widget>> widgetStack;
Run Code Online (Sandbox Code Playgroud)

但是在代码中有一个函数:

Widget* getLastWidget()
{
    if(!widgetStack.isEmpty())
    {
        return widgetStack.top();
    }
    return null;
}
Run Code Online (Sandbox Code Playgroud)

我很想让这个函数与unique_ptr一起工作.堆栈是小部件的所有者,只有在弹出堆栈时,才应销毁Widget对象.关于如何解决这个问题的任何想法?

c++ unique-ptr

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