小编San*_*nto的帖子

模糊字符串比较

我正在努力完成的是一个程序,它读入一个文件,并根据原始句子比较每个句子.与原始句子完全匹配的句子将得到1分,而总则相反的句子将得到0.所有其他模糊句子将得到1到0之间的等级.

我不确定使用哪个操作来允许我在Python 3中完成此操作.

我已经包含了示例文本,其中文本1是原始文本,其他前面的字符串是比较.

文字:样本

文字1:这是一个黑暗和暴风雨的夜晚.我独自一人坐在红色的椅子上.因为我有三只猫,所以我不是一个人.

文字20:这是一个阴暗而暴风雨的夜晚.我独自一人坐在深红色的椅子上.因为我有三只猫所以我不是完全孤独//应该得分高而不是1分

文字21:这是一个阴暗而暴躁的夜晚.我独自一人坐在深红色的座位上.因为我有三只猫所以我并不是完全孤独//应该得分低于文本20

文字22:我独自一人坐在深红色的教堂上.因为我有三只猫,所以我不是一个人.这是一个阴沉而暴躁的夜晚.//应该低于文本21而不是0

文字24:这是一个黑暗和暴风雨的夜晚.我并不孤单.我没坐在红色的椅子上.我有三只猫.//应该得0分!

python nlp fuzzy-comparison

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

Qt增加QTabWidget的QTabBar大小

我需要让我在QTabWidget底部定位的标签更大.我们将使用触摸屏,因此默认尺寸有点小.

我认为没有简单的方法可以做到这一点(目前还没有找到任何好办法.我在QTabWidget中看到的与QTabBar相关的唯一方法受到保护,我认为不需要继承其他类比这个明确的目的).

题:

我想做的是将QTabBar设置为特定的大小.这可能吗?

除此之外,我唯一能想到的是子类化QTabWidget然后我可以通过扩展或覆盖此类的功能来控制QTabBar的大小.

谢谢.

size qt qwidget qtabbar

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

Qt相当于.NET数据绑定?

在Qt中是否有相当于.NET的数据绑定?

我想用QStrings填充一些组合框和其他小部件,这些小部件引用我数据库中的特定实体.但是,如果我可以将数据绑定到这些字符串,而不是基于新的组合框选择或基于构建我自己的将使用QStrings搜索的实体索引的其他方案再次查询数据库,那将更清晰.

我提出的最好的方法是从QString派生这些实体并以这种方式将它们推入小部件,但我还没有真正尝试过.我不确定它是否会以我想要的方式工作,而且它看起来像是一个讨厌的黑客.

如果没有数据绑定,你有什么建议?

谢谢.

data-binding qt

21
推荐指数
3
解决办法
8695
查看次数

C++ std :: queue :: pop()调用析构函数.指针类型是什么?

我有一个std::queue被包装为模板化的类来创建一个线程安全的队列.我有这个类的两个版本:一个存储值类型,一个存储指针类型.

对于指针类型,我在销毁时删除队列的元素时遇到问题.原因是我不知道如何安全地从队列中删除项目.

参考状态(无思考力的,所以我想它实际上并没有状态的话)是从队列中删除元素的唯一方法是调用pop().该引用还表示pop()调用该项的析构函数.

好吧,这会导致我的指针类型出现问题,因为它们可能会或可能不会指向聚合.如果其中一个指向聚合,它们都会,但由于包装是模板化的,因此无法保证我们正在处理哪种类型(聚合或非聚合).

那么,当pop()调用析构函数时,会发生什么?如何确保删除所有内容并正确释放内存?

最后,我的解决方案是使用旧版本的GCC for ARM9.我无法控制这一点.我知道有些库有智能指针和容器可以在这里提供帮助,但它们对我来说是禁止的.

c++ queue memory-management std

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

C++中的工厂模式 - 正确执行此操作?

我对"设计模式"相对较新,因为它们在正式意义上被提及.我很久没有成为一名专业人士,所以我对此很陌生.

我们有一个纯虚拟接口基类.这个接口类显然是提供了派生子进程应该做什么功能的定义.软件中的当前用法和情况决定了我们想要使用什么类型的派生子,因此我建议创建一个包装器,它将传达我们想要的派生子类型,并返回指向新派生对象的Base指针.据我所知,这个包装器是一个工厂.

好吧,我的一位同事在Base类中创建了一个静态函数来充当工厂.这有两个原因导致我麻烦.首先,它似乎打破了Base类的接口性质.我认为界面本身需要知道从中衍生出来的孩子,这对我来说是错误的.

其次,当我尝试在两个不同的Qt项目中重用Base类时,会导致更多问题.一个项目是我实现第一个(可能只是这个类的真正实现......虽然我想对其他两个具有几个不同派生类的特性使用相同的方法)派生类,第二个是实际最终将使用我的代码的应用程序.在我编写代码时,我的同事创建了一个派生类,作为真实应用程序的测试人员.这意味着我必须将他的标题和cpp文件添加到我的项目中,这似乎是错的,因为我在实现我的部分时甚至没有使用他的代码用于项目(但是当它完成时他将使用我的).

我是否正确认为工厂真的需要成为Base类的包装而不是作为工厂的Base?

c++ design-patterns interface factory-pattern

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

实现IP摄像头

我们有一台配有模拟摄像头的设备.我们有一张卡片可以对其进行采样并将其数字化.这一切都在directx中完成.此时,替换硬件不是一种选择,但我们需要编码,以便我们可以实时看到此视频源,无论将来是否发生任何硬件或底层操作系统更改.

沿着这条线,我们选择了Qt来实现一个GUI来查看这个摄像头输入.但是,如果我们将来迁移到Linux或其他嵌入式平台并更换其他硬件(包括摄像机/视频采样器所在的物理设备),我们也需要更换摄像机显示软件,这将是痛苦是因为我们需要将它集成到我们的GUI中.

我提出的是迁移到更抽象的模型,其中数据通过套接字发送到GUI,并且视频在从套接字流解析后实时显示.

首先,这是一个好主意还是一个坏主意?

其次,你会如何实现这样的事情?视频采样器通常如何提供可用的输出?如何将此输出推到套接字上?一旦我在接收端解析输出,我怎么知道如何处理输出(如何如何获得输出渲染)?我唯一能想到的是将每个样本写入文件,然后在每次新样本到达时显示文件的内容.这对我来说似乎是一个低效的解决方案,如果它可以工作的话.

你怎么建议我处理这个?有没有可用于这种事情的跨平台库?

谢谢.

编辑:我愿意接受不同的建议,而不是上面列出的内容.

sockets qt live-video ip-camera

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

在Qt中,如何使用Q_OBJECT插槽和具有多重继承的信号?

我查看了相关的问题,找不到任何能解决我所说的内容的内容,所以让我来描述一下.

我有一个类,让我们说foo需要有自己的插槽和信号,但也需要从QXmlDefaultHandler继承(听起来很奇怪,但我在尝试使用QHttp将网站直接读入QBuffer时遇到了这种情况).

class foo: public QXmlDefaultHandler, public QObject
{
    public:
        foo();
        ~foo();

       Q_OBJECT
   public slots:
       void bar();
}
Run Code Online (Sandbox Code Playgroud)

这个代码,如果附带一个cpp连接条到其他地方的信号,将无法编译.您将获得有关QObject的某些成员不是QXmlDefaultHandler成员的错误.另外,你不能移动Q_OBJECT,否则你会因为没有实现某些东西而得到vtable错误(继续!试试吧!).

请看(非常简单)修复我的答案.如果我认为你比我更好地解释它,我会接受投票给你作为公认的答案.

编辑:对于你c ++和Qt兽医,如果你能更好地解释它,请发一个答案.我花了很多时间查看这些信息,所以如果你能做得比我好,请帮助别人.

qt qobject

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

Qt图标嵌入在Executeable中

我在tabwidget上有一些按钮.这些按钮需要在它们上面有一些图标.

我知道QPixmap允许我将图像放在按钮上,但我看到这些构造函数将文件路径作为参数.我想在构建之后避免在文件中拖动图标.我想以某种方式将这些图标嵌入可执行程序中,以便减少我需要随身携带的行李以使其工作.

我怎么能做到这一点?

我有兴趣听听如何实现我的目标,即不需要使用可执行文件拖动图标文件; 如果你对我可能使用的一些术语感到困惑,请关注这方面,因为我还在学习Qt.

icons qt

5
推荐指数
2
解决办法
5693
查看次数

字符串的常量哈希?

关于SO的另一个问题是将一些语言中的工具用于散列字符串,以便在表格中快速查找.两个例子是.NET中的dictionary <>和Python中的{}存储结构.其他语言当然支持这种机制.C++有它的地图,LISP和大多数其他现代语言一样具有等价物.

在问题的答案中争论的是,字符串上的哈希算法可以在一个持续时间内进行,其中一个SO成员具有25年的编程经验,声称任何事物都可以在恒定时间内进行哈希处理.我个人的论点是,这不是真的,除非你的特定应用程序在字符串长度上设置边界.这意味着一些常数K将决定字符串的最大长度.

我熟悉使用散列函数进行操作的Rabin-Karp算法,但是这个算法没有规定要使用的特定散列函数,作者建议的那个是O(m),其中m是长度.哈希字符串.

我看到一些其他页面,例如这个(http://www.cse.yorku.ca/~oz/hash.html)显示了一些哈希算法,但似乎每个页面都在字符串的整个长度上迭代达到它的价值.

根据我对该主题的相对有限的阅读,似乎大多数字符串类型的关联数组实际上是使用散列函数创建的,该散列函数在引擎盖下运行某种树.这可以是AVL树或红/黑树,其指向键/值对中的值元素的位置.

即使使用这种树结构,如果我们要保持theta(log(n))的顺序,n是树中元素的数量,我们需要有一个恒定时间的哈希算法.否则,我们会对字符串进行迭代处理.尽管对于包含许多字符串的索引,theta(m)会被theta(log(n))黯然失色,但如果我们处于这样一个域中,我们搜索的文本将非常大,我们就不能忽略它.

我知道后缀树/数组和Aho-Corasick可以将搜索降低到theta(m)以获得更大的内存费用,但是我要问的是,如果存在任意长度的字符串的常量时间哈希方法,那么其他SO成员声称.

谢谢.

string associative-array string-algorithm

5
推荐指数
2
解决办法
2276
查看次数

函数调用在C/C++中使用常量优化

如果你有使用常量的函数调用,它没有副作用,它不依赖于任何东西,如下所示:

int foo(int a,int b)
{         
  return a+b;   
}

该函数是否内联?或者,也许是在编译时评估的函数,插入此评估的结果代替函数调用?

c c++ compiler-construction optimization

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