配列からintへのポインタがあるとします。これは、ポインタが指す配列のどの項目を見つけるのに最適な方法ですか?C++の配列要素のポインタからインデックスを取得する最速の方法は何ですか?
int nmbr = pointer - &array[0];
cout<<"Item number "<<nmbr+1;
ポインタが6番目の項目を指している場合、これは常に「項目番号6」を出力しますか?これはエラーが起こりやすいのですか?それを行うより速い方法がありますか?重複する可能性のある値のために配列を反復処理することはできませんが、これは常に機能しますか?この状況では、配列は項目0から項目xで始まるものとします。配列の項目が連続した行に格納されていない状況があります(配列がint array[x];
のように初期化されている場合)。
より一般的な:; '' coutの<<はstd ::距離(配列、ポインタ)+ 1次の例では、検討することもでき、他のコンテナ上で動作する、より汎用的な解決のために
、 – PaulMcKenzie
@PaulMcKenzie 'STD私はアイテムの数は1からではなく、0から始まる出力にそれをしたいので、::あなたはそれが一般的なようにしたい場合は、'(配列)を開始:) – BoBTFish