問題タブ [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 投票する
2 に答える
4946 参照

arrays - Ruby 2.0.0 Array#bsearch の動作

bsearchRuby 2.0.0 の時点で、配列クラスに私がテストしていたメソッドがあり、期待した動作が得られないことに気付きました。2 と 5 の値を返すのに、-1、1、4 の値を返すのはなぜnilですか?

0 投票する
6 に答える
5485 参照

ruby - bsearch を使用して、並べ替えられた配列に新しい要素を挿入するためのインデックスを見つける

ソートされた一意の配列があり、次のように配列にない要素を効率的に挿入したい:

このメソッドbsearch_indexは存在しません: only bsearch。これは、一致する要素のインデックスではなく、一致する要素を返します。これを達成するための組み込みの方法はありますか?

0 投票する
2 に答える
325 参照

ruby - プログラミングRubyからのRuby配列#bsearch構文エラー?

このコードを book Programming Ruby からコピーし、rubyfiddle.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」が見つかりません。

これは、この古いプロジェクトがシンボルの競合のために一部の lib を無視しているためだと思われます (関数の名前を変更する代わりに lib を省略することを好む理由もわかりません)。

無視されたライブラリ:msvcrt.lib;msvcrtd.lib;libcmt.lib;libc.lib

これらの無視されたライブラリを追加しようとしましたが、多くの「シンボルの再定義」の問題が発生し、それらの関数の名前を変更することは適切な解決策ではないと思います。

回避策を見つけました ( bsearchto をstd::binary_search置き換えます) が、この問題を適切に解決する理由と方法を知りたいです (コンパイラが bsearch を見つけられないのはなぜですか?)。ありがとう。

0 投票する
1 に答える
1029 参照

c - bsearch または lfind からインデックスを返す方法は? - 並べ替えは値を返します

私はすでにこれを見て実装しようとしましたが、この方法でそれを行うとセグフォルトが発生し続けます: bsearch と lfind からインデックスを決定していますか? - 参照用のリンクは次のとおりです。

基本的に、bsearch または lfind によって返されるポインターから配列内のインデックスを把握しようとしています。

次に、どちらかの検索を呼び出しますが、うまく機能しているようです...

そして、上記のリンクに基づいて、私は次のことをしようとしています:

ただし、これを行うたびにセグメンテーション違反が発生します。私の論理は、両方の void ポインターを char* の型にキャストし、void でポインター演算を行うことができないため、ポインターの b/w の距離を減算することです。これを各要素のサイズで割って、int にキャストする必要があるインデックスを返します。ここで何が欠けていますか?

編集: sizeof(cv->elemsz) を elemsz に変更すると、正しいインデックスが返されました。ただし、現在の問題は、ベクトルが qsort を使用してソートされている場合、間違った値を返すことです (20 が予想されるときにインデックス 10 など)。

0 投票する
1 に答える
650 参照

c - 構造体のポインタの配列を持つ bsearch

私は構造体を持っています:

および構造体の配列entry_t * list[MAX];

次の関数にエントリが存在する場合、bsearch を使用してエントリを取得しようとします。

私のデータベースログ

奇妙なことに、それsentryはnullではありませんが、奇妙なものですname(ランダムなメモリ位置)。

どうも

0 投票する
1 に答える
224 参照

c - bsearch() は (nil) を返し、セグメンテーション違反を引き起こします

bserach() 関数は NULL を返す必要がありますが、代わりに、指定された配列でキーが見つからない場合に (nil) を取得します。何がうまくいかないのですか?

0 投票する
2 に答える
2353 参照

c - cでbsearchを正しく使用するには?

日付の配列で日付 (構造体) を検索して、その中にあるかどうかを確認したいと考えています。これは私が bsearch を使用するのは初めてで、常に同じ結果 0 を返しますが、null または見つかった日付へのポインターを返す必要があります。配列のソートに使用したのと同じ比較関数を使用していますが、ソートは正常に機能します。関数が 0 を返す場合は、配列内に日付が見つかったことを意味すると思います。私は何を間違えましたか?間違いが明らかでない場合は、完全なコードを投稿できます。

0 投票する
2 に答える
722 参照

c++ - Doxygen のパラメーターとしての C++ 関数ポインター

Doxygen で bsearch() 署名を文書化する必要がある状況があります。その署名は次のようになります。

私が抱えている問題は、ポインター *compare の @param コマンドを作成する方法です。これは、Doxygen が「コマンド @param の引数 'compare' が bsearch の引数リストに見つかりません」と不平を言うためです。

これはスタンドアロンの実装であるため、ライブラリの署名に依存していませんが、私がそうしたかどうかを考えています:

署名を pcompare に変更すると、標準の署名を使用する呼び出し元に型の問題が発生することが比較されます。

私は、Doxygen からの警告なしにこれを文書化できる任意のソリューションを受け入れます。

0 投票する
1 に答える
366 参照

c - bsearch は、構造体の配列で文字列メンバーを見つけることができませんでした

C で bsearch を使用すると、構造体の配列で文字列 'Eva Lam' が見つかりませんでした。この配列は、文字列メンバーの降順で並べ替えられます。何度も確認しましたが、まだどこにバグがあるのか​​ わかりませんか?ところで、私は DEV C++ 5.9.4 を使用しています。助けてください、どうもありがとう。

しかし、「Eva Lam」を検索したときのプログラムの出力は次のとおりです。