小编Dou*_* T.的帖子

使用STL map/set/multiset/multimap,如何找到大于或等于搜索键的第一个值?

假设我有一组值,存储在std :: set中:

{1,2,6,8}

我有一个搜索键,比方说,3.我想将3放入一个函数并获得大于或等于3的第一个值,在这种情况下我想得到6.

当然,map/set/multimap /和set中提供的find()函数将返回此情况的结束迭代器.在这种情况下是否有类似的函数可以返回6?

c++ containers stl

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

你如何处理在平台之间切换的整数的原生大小?

我担心我已经知道答案,但我想确定......

我有一个相当大的项目,其头文件类型为typedefs native types:

typedef unsigned long int    u32;
typedef signed long int      s32;
// etc...
Run Code Online (Sandbox Code Playgroud)

不可避免的事情发生了,我现在正在尝试编译long64位而不是32位的系统.修复它的最佳方法是什么?

我可以typedef在上面int(或int32_t/ uint32_t从stdint.h),这将满足在平台上的32位大小我知道,但这似乎仍值得怀疑.使用printf样式函数也存在问题%ld(编译器抱怨并希望看到%d).这些都必须改变,不是它们(也许是inttypes.h中的定义)?

这似乎很简单但我想在开始深入研究之前确定(修复printf格式字符串似乎令人生畏).

c c++ portability

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

如何将使用C++ pass-by-reference的函数转换为C?

我有一段用C++编写的代码,需要它在C中.我转换了大部分代码,但我无法弄清楚如何将函数中的C++ pass-by-reference转换为C代码,即

例:

int& a;
Run Code Online (Sandbox Code Playgroud)

它在某些函数中用作输入变量:

void do_something(float f, char ch, int& a)
Run Code Online (Sandbox Code Playgroud)

当我用CI编译它时编译错误.什么是在C中用引用替换传递的正确方法?

c c++

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

如何为不绑定模板参数的tr1 :: unordered_map定义宏/ typedef/etc?

这可能是一个有点愚蠢的问题,但我只需要问一下.我试图在C++中使用unordered_map类,但不是每次都将它作为tr1 :: unordered_map引用,我想只使用关键字hashMap.我知道

typedef tr1::unordered_map<string, int> hashMap 
Run Code Online (Sandbox Code Playgroud)

但是这样可以修复键的数据类型和hashMap对应的值,而我希望有更多如下所示:

#define hashMap tr1::unordered_map
Run Code Online (Sandbox Code Playgroud)

我可以在哪里定义键的数据类型和值取决于要求,但这不起作用.以前有人遇到过这个问题吗?

谢谢

c++ xcode stl unordered-map hashmap

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

用Python标记用于搜索的文本

寻找有关如何为搜索标记文本的策略,以及如何实现它们的一些想法.

具体来说,我们正在尝试将用户生成的业务审核标记为有助于我们的业务搜索引擎.所有代码都是Python.

我想我们至少需要做以下几点:

  • 将复数名词转换为单数
    我发现了一个名为inflect的图书馆似乎做得很好,有没有人有任何经验呢?

  • 摆脱所有非字母数字字符
    这似乎是我的正则表达式的工作,但我很想听到任何其他建议

  • Tokenize基于空格,将连续的空格转换为单个空格
    我认为这对于Python中的一些自定义字符串操作是可行的,但可能有更好的方法.

有没有人对我需要做的事情有任何其他想法来标记文本?另外,您对实施上述策略所提及的技术和工具有何看法?

背景信息 :(从评论到Dough T关于Solr或Elastic搜索的建议)
我们正在使用ElasticSearch,我们使用它的工具进行基本标记化.我们想要单独进行上面描述的标记化,因为在标记化之后,我们将需要应用一些非常复杂的语义分析来从文本中提取意义.我们希望灵活地准确地标记我们如何指定,以及使用我们自己的数据注释附加到我们自己的格式存储令牌的便利性.
我们绝对需要的一件事是每个令牌的单个(大)数据库记录,可以随时访问和修改,其中包含与该令牌的使用相关的所有内容.我认为,当文档被索引时,排除仅使用ES标记化来处理它们.我们可以使用ES的分析模块来分析文本而不对其进行索引,然后单独处理每个令牌以构建/更新令牌的数据库记录......我们寻求有关此方法的建议.

python string search tokenize elasticsearch

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

Grunt在cdnify失败并发出警告:"警告:path.join的参数必须是字符串"?

这是我在我的生成角度项目中运行grunt时得到的警告:

运行"cdnify:DIST"(cdnify)任务,通过测距/ 404.html,DIST/index.html的要更新脚本裁判警告:参数传递给path.join必须是字符串使用--force继续.因警告而中止.

以下是我正在运行的版本:

grunt-cli v0.1.13

咕噜v0.4.5

节点v0.10.29

npm 2.0.0-alpha-5

自耕农1.2.1

以下是我的grunt.js文件的内容:

// Generated on 2014-07-28 using generator-angular 0.9.5
'use strict';

// # Globbing
// for performance reasons we're only matching one level down:
// 'test/spec/{,*/}*.js'
// use this if you want to recursively match all subfolders:
// 'test/spec/**/*.js'

module.exports = function (grunt) {

  // Load grunt tasks automatically
  require('load-grunt-tasks')(grunt);

  // Time how long tasks take. Can help when optimizing build times
  require('time-grunt')(grunt);

  // Configurable paths for the application
  var …
Run Code Online (Sandbox Code Playgroud)

javascript npm gruntjs yeoman bower

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

Elasticsearch:从点击中学习(搜索结果排名)

我已经阅读了《编程集体智慧》一书中的“从点击中学习”一章,并喜欢这样的想法:那里的搜索引擎了解用户点击了哪些结果,并使用此信息来提高结果的排名。

我认为,如果我可以从用户点击中学习的话,它将大大提高我的Java / Elasticsearch应用程序中搜索排名的质量。

在这本书中,他们建立了一个多人感知器(MLP)网络,甚至可以将学习到的信息用于新的搜索短语。他们使用带有SQL数据库的Python来计算搜索排名。

有没有人已经用Elasticsearch实现了这样的事情,或者知道一个示例项目?如果我可以直接在Elasticsearch中管理点击信息而不需要额外的SQL数据库,那就太好了。

java search machine-learning relevance elasticsearch

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

WinDbg Dr. Watson minidump - 需要最初为安装版本构建的pdb/dll吗?

我有一个来自目标应用程序崩溃的mindmp文件.我是否可以为某个版本的软件重建dll/pdb文件并正确加载windbg符号?

我的问题是我们的pdb文件仅保留用于主要版本(不幸的是).这是一个每日构建,我可以自己重建,但我会因错误而被绊倒.

使用!sym noisy on:"图像标题与内存图像标题不匹配."

DBGENG:  C:\...\XXX.dll image header does not match memory image header.
DBGENG:  XXX.dll - Partial symbol image load missing image info
DBGHELP: Module is not fully loaded into memory.
DBGHELP: Searching for symbols using debugger-provided data.
DBGHELP: C:\...\XXX.pdb - mismatched pdb
Run Code Online (Sandbox Code Playgroud)

注意我用dll构建了pdb,它们来自同一个RELEASE目录(我应该构建调试吗?)

这些是发布版本(因为版本构建安装在目标上并且崩溃)我应该以某种方式使用调试构建dll来获取更多符号信息吗?

windows debugging dll windbg dr.watson

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

如何防止在PHP中使用不正确的类型?

PHP,我们都知道是非常松散的类型.该语言不要求您为函数参数或类变量指定任何类型的类型.这可能是一个强大的功能.

但有时候,它可以使调试脚本成为一种痛苦的经历.例如,将一种对象传递给需要不同类型对象的方法可能会产生错误消息,抱怨传递的对象不存在某个变量/方法.这些情况大多是烦恼.更糟糕的问题是当您使用错误类的对象初始化一个对象时,并且直到稍后在脚本执行中才会使用"错误对象".在这种情况下,您最终得到的错误要比通过原始参数的时间晚得多.

而不是抱怨我传递的内容没有特定的方法或变量,或者等待很久以后在脚本执行中为我传入的对象使用,我宁愿有一条错误消息,在我指定对象的确切位置错误的类型,抱怨对象的类型不正确或不兼容.

你如何处理代码中的这些情况?你如何检测不兼容的类型?如何在脚本中引入一些类型检查,以便我可以更容易理解错误消息?

另外,如何在Php中考虑继承时如何做到这一切?考虑:

<?php
class InterfaceClass
{
#...
}

class UsesInterfaceClass
{
   function SetObject(&$obj) 
   {
       // What do I put here to make sure that $obj either
       // is of type InterfaceObject or inherits from it       

   }
}
?>
Run Code Online (Sandbox Code Playgroud)

然后,此代码的用户使用自己的具体类实现接口:

<?php

class ConcreteClass extends InterfaceClass
{
}



?>
Run Code Online (Sandbox Code Playgroud)

我希望ConcreteClass实例以及所有未来的未知用户定义对象也可以被SetObject接受.如何在检查正确类型时允许这样做?

php oop type-safety

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

我可以使用互锁操作来更新多个值以避免锁定关键部分/互斥锁吗?

我有一个多线程应用程序(C++),我需要增加/更改一系列值.如果我使用一系列互锁操作,它们被认为是单个原子操作吗?就像在这个例子中:

InterlockedIncrement(&value1);
InterlockedIncrement(&value2);
InterlockedExchange(&oldValue, newValue);
Run Code Online (Sandbox Code Playgroud)

或者我们更好地锁定以执行同步?像这样:

EnterCriticalSection(&cs);
value1++;
value2++;
oldValue = newValue;
LeaveCriticalSection(&cs);
Run Code Online (Sandbox Code Playgroud)

我认为需要一个锁定,但我不确定......所有的值要么处于旧状态,要么处于新状态,这一点非常重要.

c++ multithreading synchronization interlocked-increment

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