小编Abh*_*wal的帖子

"名人"算法的最佳解决方案

n人中," 名人 "被定义为 每个人都知道但不认识任何人的人.问题是识别名人,如果存在的话,只询问表格的问题," 对不起,你知道那边的那个人吗? "(假设所有的答案都是正确的,甚至那个名人也会也回答.)目标是尽量减少问题的数量.

这个订单的解决方案是否少于明显的解决方案O(n^2)

algorithm complexity-theory time-complexity graph-algorithm data-structures

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

如何在intellij中隐藏调试器窗口中的特定帧

在此输入图像描述

我知道我可以通过单击上面的按钮来隐藏库中的框架,但我想在调试窗口中查看其中的一些库,我该怎么做?

我的intellij版本:IU-171.4424.56

intellij-idea

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

将十六进制字符串转换为QByteArray

我需要将QString已经为十六进制格式的转换为QByteArray。例如:

QString a = "AF5603B4"
Run Code Online (Sandbox Code Playgroud)

应存储QByteArray为:

QByteArray ba[4] = { 0xAF, 0x56, 0x03, 0xB4 }
Run Code Online (Sandbox Code Playgroud)

如何在Qt 5.9中做到这一点?我尝试使用许多方法,但是所有这些方法都会将字符串字符转换为它们的ASCII值,然后给出该十六进制值。

我找到Convert.toByte了在C#中使用的方法;我可以使用Qt中的等效项吗?

c++ string qt qbytearray

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

自动关闭单引号和双引号 vscode

我的 vscode 不会自动关闭单引号和双引号。我已经禁用了所有扩展,但问题仍然存在。

vscodeVersion 1.15.0 (1.15.0)

MAC osx:版本 10.12.6 (16G29)

macos visual-studio-code

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

在 Qt 中的 show() 上更改窗口位置

我知道当我从当前 window( ) 创建窗口对象时重新定位窗口的过程,currWindow如下所示:

QDesktopWidget widget;
QRect screenGeometry = widget.screenGeometry();
int height = screenGeometry.height();
int width = screenGeometry.width();
//set to middle of screen
targetwindow->move((width - targetwindow->width()) / 2.0,
                (height - targetwindow->height()) / 2.0);
targetwindow->show();
Run Code Online (Sandbox Code Playgroud)

currWindow我也有类似的代码。不过,我有一个后退按钮,其中targetwindow隐藏了targetwindow和。我使用信号槽机制实现了这一点,如下所示:show()currWindow

connect(targetwindow,&TargetWindow::pressTargetWindowGoBackButton,
                                           this,&CurrentWindow::show);
Run Code Online (Sandbox Code Playgroud)

问题是在按下节目上的后退按钮后targetwindowcurrWindow但没有保持我之前设置的位置(即屏幕中间)。我尝试通过添加代码来使用此运算符将其定位在绘制事件中来纠正它,但它不起作用:

void currWindow::paintEvent(QPaintEvent *pe)
{

        QDesktopWidget widget;
        QRect screenGeometry = widget.screenGeometry();
        int height = screenGeometry.height();
        int width = screenGeometry.width();
        this->move((width - this->width()) / 2.0,
                        (height - this->height()) / 2.0);
} …
Run Code Online (Sandbox Code Playgroud)

c++ qt position window qt5

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

Qt如果不是十六进制,则从QLineEdit中删除字符

我的Qt应用程序中有一个QLineEdit需要以十六进制值作为输入.如果输入的字符不是十六进制,我希望应用程序显示警告消息框,并从QLineEdit中删除无效字符.必须在QLineEdit中每个字符的条目处执行此检查.到目前为止,我有这个:

void MemoryTestWindow::on_lineEditAddress1_textChanged(const QString &arg1)
{
        QString text1=ui->lineEditAddress1->text();
        int len=text1.length();
        QChar ch=text1.at(len-1).toUpper();
        if(!((ch>='A'&& ch<='F')|| (ch>='0' && ch<='9')))
        {
            text1.remove(len-1,1);
            //*arg1="";
            QMessageBox::warning(this,"Invalid Character!","Please enter hexadecimal characters 0-9, A-F");

        }

} 
Run Code Online (Sandbox Code Playgroud)

我正在使用QLineEdit的textChanged插槽,因为我需要在每个字符输入后执行检查.我无法想象如何更改QLineEdit中的值,即在警告消息框中单击"确定"后应删除最后一个无效字符.我怎样才能做到这一点?

c++ string qt

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

如何将crc-32修改为crc-32 / mpeg-2

我正在尝试编写一个函数,以将设备的CRC 32输出与我计算出的实际CRC-32总和相匹配。以下是我的代码:

#include <iostream> 
#include <string.h> 
#define CRC32_POLYNOMIAL 0xEDB88320
using namespace std;
unsigned int crc32b(unsigned char *message,size_t l)
{
   int i, j;
   unsigned int byte, crc, mask;

   i = 0;
   crc = 0xFFFFFFFF;
   while (i<l) {
      byte = message[i];            // Get next byte.
      crc = crc ^ byte;
      for (j = 7; j >= 0; j--) {    // Do eight times.
         mask = -(crc & 1);
         crc = (crc >> 1) ^ (0xEDB88320 & mask);
      }
      i = i + …
Run Code Online (Sandbox Code Playgroud)

c++ crc32 checksum crc

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