问题标签 [bsearch]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
407 浏览

c++ - qsort()/bsearch() 的外部“C”和“C++”版本的重载解决方案

qsort()在 C++ 中,标准库提供了两个版本:

bsearch()差不多。

我的问题是,调用时重载解析如何工作qsort()?它是否会根据作为最后一个参数传递的函数指针的链接类型(“C”或“C++”)自动链接到适当的函数?或者调用者需要使用某种额外的语法明确指定?

(让我们暂时收起打电话的诱惑std::sort......)

0 投票
2 回答
240 浏览

ruby - ruby 中 bsearch 和 find 的区别

我正在尝试将目录中的文件与其他目录中的其他文件以及使用 ruby​​ 的子目录进行匹配。

我尝试使用此文件体系结构进行小测试:

我的红宝石代码是:

输出是:

搜索 toto 不会返回任何结果。知道为什么,以及如何解决吗?

编辑:如果我用 find 替换 bsearch,上面的代码将按预期运行。谁能向我解释这两种方法之间的区别?

如果你想试试,我上传了一个 tgz:

http://cl.ly/331J0C2e2D0Y

0 投票
2 回答
4946 浏览

arrays - Ruby 2.0.0 Array#bsearch 行为

我注意到,从 Ruby 2.0.0 开始,数组类有一个bsearch我正在测试的方法,但我没有得到我期望的行为。为什么它返回 2 和 5 而不是nil-1、1 和 4 的值?

0 投票
6 回答
5485 浏览

ruby - 使用 bsearch 查找将新元素插入排序数组的索引

我有一个排序的唯一数组,并希望有效地将一个不在数组中的元素插入其中,如下所示:

该方法bsearch_index不存在: only bsearch,它返回匹配元素而不是匹配元素的索引。有没有内置的方法来实现这一点?

0 投票
2 回答
325 浏览

ruby - Ruby Array #bsearch 来自 Programming Ruby 的语法错误?

从 Programming Ruby 中复制此代码并在 ruby​​fiddle.com 中运行它。得到语法错误而不是 # => 21​ ?任何帮助表示赞赏!

0 投票
1 回答
213 浏览

c++ - 找不到 bsearch(vc2008) 甚至包含头文件

我维护一个旧项目并遇到了一些链接器错误。

错误信息是:
error LNK2019: unresolved external symbol __imp__bsearch referenced in function "bool __cdecl is_sync_host

据我所知,该bsearch函数包含在头文件“cstdlib”或“stdlib.h”中,但即使包含头文件,我也找不到“bsearch”。

我怀疑这是因为这个旧项目因为符号冲突而忽略了一些库(我也不知道他们为什么更喜欢省略库而不是重命名函数)

被忽略的库:msvcrt.lib;msvcrtd.lib;libcmt.lib;libc.lib

我尝试将那些被忽略的库添加回来,但后来我遇到了很多“符号重新定义”问题,我认为重命名这些函数不是一个适用的解决方案。

我找到了解决方法(替换bsearchto std::binary_search),但我想知道为什么以及如何正确解决这个问题(编译器为什么找不到 bsearch?)。谢谢。

0 投票
1 回答
1029 浏览

c - 如何从 bsearch 或 lfind 返回索引?- 排序扭曲返回值

我已经看过这个并尝试实现,但是这样做总是给我一个段错误: Determining index from bsearch and lfind? - 这是供参考的链接。

基本上,我试图从 bsearch 或 lfind 返回的指针中找出数组中的索引。

然后,我调用任一搜索,这似乎工作正常......

根据上面的链接,我正在尝试执行以下操作:

但是,每次我这样做时都会出现段错误。我的逻辑是我将两个 void 指针都转换为 char* 类型,然后减去指针的 b/w 距离,因为你不能在 void 上进行指针运算。我将其除以每个元素的大小以返回索引,该索引需要转换为 int。我在这里想念什么?

编辑:将 sizeof(cv->elemsz) 更改为 elemsz 确实返回了正确的索引。但是,现在的问题是,如果使用 qsort 对向量进行排序,它会返回错误的值(预期为 20 时的索引为 10,等等)。

0 投票
1 回答
1790 浏览

c++ - C++11 和 C++14 中的 `bsearch` 规范有缺陷吗?

在我对这个问题的回答之后,在 C++11 和 C++14 中:

[C++11, C++14: 25.5/2]:内容与标准 C 库头文件相同,但<stdlib.h>有以下例外:

[C++11, C++14: 25.5/3]:函数签名:

替换为两个声明:

两者都具有与原始声明相同的行为。

然而,

[C++11, C++14: 7.5/5]:如果两个声明将具有相同名称和参数类型列表(8.3.5)的函数声明为同一命名空间的成员,或者将具有相同名称的对象声明为同一命名空间的成员,并且声明赋予名称不同的语言链接,程序格式错误;如果声明出现在不同的翻译单元中,则不需要诊断。[..]

这是缺陷吗?

0 投票
1 回答
650 浏览

c - bsearch 与结构指针数组

我有一个结构:

和一个结构数组entry_t * list[MAX];

如果以下函数中存在条目,我尝试使用 bsearch 获取条目:

我的数据库日志

奇怪的是,这sentry不是空的,而是name奇怪的东西(随机内存位置)。

谢谢

0 投票
1 回答
224 浏览

c - bsearch() 返回 (nil),导致分段错误

bserach() 函数应该返回 NULL,但是当它无法在给定数组中找到键时,我得到 (nil)。怎么了?