問題タブ [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.
c++ - qsort()/bsearch() の extern "C" および "C++" バージョンでのオーバーロードの解決
C++ では、qsort()標準ライブラリによって提供される の2 つのバージョンがあります。
bsearch()ほぼ同じです。
私の質問は、呼び出し時にオーバーロードの解決がどのように機能するqsort()かです。最後の引数として渡された関数ポインタのリンケージ タイプ (「C」または「C++」) に基づいて、適切な関数に自動的にリンクしますか? または、呼び出し元は、ある種の追加の構文で明示的に指定する必要がありますか?
(ちょっと電話したいという誘惑を片付けましょうstd::sort...)
ruby - ruby での bsearch と find の違い
ルビーを使用して、あるディレクトリのファイルを別のディレクトリ内の他のファイルとそのサブディレクトリに一致させようとしています。
このファイル アーキテクチャを使用して小さなテストを作成しようとしました。
私のルビーコードは次のとおりです。
出力は次のとおりです。
toto を検索しても結果は返されません。理由と修正方法はありますか?
編集: bsearch を find に置き換えた場合、上記のコードは意図したとおりに動作します。これらの2つの方法の違いを説明できる人はいますか?
試してみたい場合は、tgz をアップロードしました。
arrays - Ruby 2.0.0 Array#bsearch の動作
bsearchRuby 2.0.0 の時点で、配列クラスに私がテストしていたメソッドがあり、期待した動作が得られないことに気付きました。2 と 5 の値を返すのに、-1、1、4 の値を返すのはなぜnilですか?
ruby - bsearch を使用して、並べ替えられた配列に新しい要素を挿入するためのインデックスを見つける
ソートされた一意の配列があり、次のように配列にない要素を効率的に挿入したい:
このメソッドbsearch_indexは存在しません: only bsearch。これは、一致する要素のインデックスではなく、一致する要素を返します。これを達成するための組み込みの方法はありますか?
ruby - プログラミングRubyからのRuby配列#bsearch構文エラー?
このコードを book Programming Ruby からコピーし、rubyfiddle.com で実行します。# => 21 の代わりに構文エラーが発生していますか? どんな助けでも大歓迎です!
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 を見つけられないのはなぜですか?)。ありがとう。
c - bsearch または lfind からインデックスを返す方法は? - 並べ替えは値を返します
私はすでにこれを見て実装しようとしましたが、この方法でそれを行うとセグフォルトが発生し続けます: bsearch と lfind からインデックスを決定していますか? - 参照用のリンクは次のとおりです。
基本的に、bsearch または lfind によって返されるポインターから配列内のインデックスを把握しようとしています。
次に、どちらかの検索を呼び出しますが、うまく機能しているようです...
そして、上記のリンクに基づいて、私は次のことをしようとしています:
ただし、これを行うたびにセグメンテーション違反が発生します。私の論理は、両方の void ポインターを char* の型にキャストし、void でポインター演算を行うことができないため、ポインターの b/w の距離を減算することです。これを各要素のサイズで割って、int にキャストする必要があるインデックスを返します。ここで何が欠けていますか?
編集: sizeof(cv->elemsz) を elemsz に変更すると、正しいインデックスが返されました。ただし、現在の問題は、ベクトルが qsort を使用してソートされている場合、間違った値を返すことです (20 が予想されるときにインデックス 10 など)。
c - 構造体のポインタの配列を持つ bsearch
私は構造体を持っています:
および構造体の配列entry_t * list[MAX];
次の関数にエントリが存在する場合、bsearch を使用してエントリを取得しようとします。
私のデータベースログ
奇妙なことに、それsentryはnullではありませんが、奇妙なものですname(ランダムなメモリ位置)。
どうも
c - bsearch() は (nil) を返し、セグメンテーション違反を引き起こします
bserach() 関数は NULL を返す必要がありますが、代わりに、指定された配列でキーが見つからない場合に (nil) を取得します。何がうまくいかないのですか?