我在理解Haskell中的Knuth-Morris-Pratt算法的实现时遇到了麻烦.
http://twanvl.nl/blog/haskell/Knuth-Morris-Pratt-in-Haskell
特别是我不了解自动机的结构.我知道它使用"绑结"方法来构造它,但我不清楚,我也不知道为什么它应该具有正确的复杂性.
我想知道的另一件事是你是否认为这个实现可以很容易地推广到实现Aho-Corasick算法.
谢谢你的回答!
我正在尝试QFileSystemWatcher它,它以某种方式不能按预期工作.或者我做错了什么?
我已经设置了QFileSystemWatcher观看单个文件.当我第一次修改文件时,fileChanged()会被激活,这没关系.但是当我再次修改文件时,fileChanged()不会再出现了.
这是源代码:
main.cpp中
#include <QApplication>
#include "mainwindow.h"
int main(int argc, char **argv)
{
QApplication app(argc, argv);
MainWindow window;
window.show();
return app.exec();
}
Run Code Online (Sandbox Code Playgroud)
mainwindow.h
#include <QDebug>
#include <QFileSystemWatcher>
#include <QMainWindow>
#include <QString>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();
private slots:
void directoryChanged(const QString & path);
void fileChanged(const QString & path);
private:
QFileSystemWatcher * watcher;
};
Run Code Online (Sandbox Code Playgroud)
mainwindow.cpp
#include "mainwindow.h"
MainWindow::MainWindow()
{
watcher = new QFileSystemWatcher(this);
connect(watcher, SIGNAL(fileChanged(const QString &)), this, …Run Code Online (Sandbox Code Playgroud) 我在图形视图中的滚动条有以下问题.我的应用程序采用PDF文件并以某种方式创建一个QImage.将QImage然后被转换成QPixmap,其被用于创建QGraphicsScene并从QGraphicsScene我创建QGraphicsView.它QGraphicsView被添加到中央窗口小部件并显示.
代码看起来大致如此
QImage image;
image = loadImage(path);
QPixmap pixmap;
pixmap.convertFromImage(image);
scene = new QGraphicsScene(this);
scene->addPixmap(pixmap);
view = new QGraphicsView(scene);
textEdit = new QTextEdit(this)
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(view);
layout->addWidget(textEdit);
QWidget *widget = new QWidget;
widget->setLayout(layout);
setCentralWidget(widget);
Run Code Online (Sandbox Code Playgroud)
在应用程序中,view每次PDF文件更改时都会更新.现在的问题是,PDF文件中的东西也会改变大小,滚动条会搞乱.我希望更新后的滚动条位于某个位置,这样我将看到与更新前看到的PDF文件相同的部分.
你能就如何做到这一点给我一些建议吗?我已经搜索过这个问题,但到目前为止我的案例中没有任何工作(我本可以做错事).
谢谢您的回答!