問題タブ [subscript-operator]

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 投票する
5 に答える
1215 参照

c# - C++ 添字演算子が存在するクラス内から C++ 添字演算子にアクセスするにはどうすればよいですか?

ここで、ClassA には、ClassB を返すような演算子があります。

ClassA のコンストラクター内から上記のオペレーターにアクセスする場合は、次のようになります。

現時点では、回避策として、[] 演算子とコンストラクターが呼び出す GetAtIndex(int index) というメソッドを使用しています。

C# と同じようにアクセスできればいいのですが:

注:私はg ++を使用しています

0 投票する
5 に答える
157 参照

c++ - パラメーターとしての C++ 配列、編集: 変数スコープが含まれるようになりました

わかりました、これは簡単な質問だと思いますので、ノックを取りますが、Google や SO で必要なものが見つかりません。ある場所で配列を作成し、別の関数内に入力したいと思います。

関数を定義します。

これは私のコードが行っていることの近似値ですが、オーバーフローや範囲外の問題などに遭遇するべきではありません。私は配列を生成します:

それから私はそれを渡したいsomeFunction

ブレークポイントを設定してコードをステップ実行すると、入力時にsomeFunctionresultsと同じアドレスに設定されresult、値は予想どおり -1.000000 になります。ただし、ループの繰り返しを開始すると、またはresults[n]に解決されないようで、 に解決されるようです。最終的に、結果の配列にデータを入力する代わりに、値を 1 つ取得するだけです。私は何を間違っていますか?*(results+n)*(results+n*sizeof(double))*(results)

EDIT ああ楽しいです、タイプミスがあります:そうではありませんでしvoid someFunction(double results[])た。そうだった:

したがって、おそらくこれはスコーピングの問題に変わりつつあります。double result[16]配列が main.cpp でsomeFunction定義されていて、main.cpp に含まれる Utils.h ファイルで定義されている場合、変数resultはmain.cpp の配列にsomeFunction大混乱をもたらしますか?result

編集2:

@gf、新しいプロジェクトでこの問題を再現しようとしている過程で、元のプロジェクトが「魔法のように」機能し始めました。

何も変わっていないので、どう説明したらよいかわかりませんが、私が見たものにはかなり確信があります。この問題についての最初の説明はかなり明確だったので、幻覚だったとは思いません。時間と回答に感謝します...時間を無駄にして申し訳ありません。再発した場合はまた更新しますが、当面は問題ないと思います。再度、感謝します。

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

c++ - 特定の配列型の添字演算子の戻り値の型をブーストで判別するにはどうすればよいですか?

ブーストを使用して配列 (T) の添え字演算子によって返される型を決定したい場合、どの型シグネチャを使用する必要がありますか? これを使用する配列には、typedef が含まれておらず、サードパーティであることに注意してください。

例。私はそれを決定したい:

何かのようなもの

? 型シグネチャの operator[] には常に問題がありました。:|

ありがとうございました!

0 投票する
7 に答える
10086 参照

c++ - l値とr値の場合の添え字演算子「[]」のオーバーロード

クラスIntervalで[]演算子をオーバーロードして、またはを返しました。

しかし、 []演算子を使用してまたはに値を割り当てる方法がわかりません。

例:このステートメントを使用できます

cout << a[1] << "min and " << a[0] << "sec" << endl;

しかし、[]演算子をオーバーロードしたいので、を使用して分または秒に値を割り当てることもできます

私のコード:

メンバー変数をプライベートとして宣言する必要があることは知っていますが、便宜上、ここではパブリックとして宣言しました。

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

c++ - CおよびC++のindex[array]による配列へのアクセス

一部のインタビュアーが何らかの理由で尋ねるのが好きなこの小さなトリックの質問があります:

私が理解できることから、a[b]変換され*(a + b)、加算は可換であるため、それらの順序は実際には重要ではありません。実際、それは問題なく2[a]機能*(2 + a)します。

これはCおよび/またはC++の仕様で動作することが保証されていますか?

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

c++ - operator[]のオーバーロード

下付き文字演算子をオーバーロードする必要があるシナリオは何ですか?

そして、assert関数はこれと何の関係がありますか?添え字のオーバーロードのassertの使用のほとんどの場合、それについての説明が必要になると思います。

0 投票する
3 に答える
1969 参照

c++ - 添え字演算子をオーバーロードし、ダブルポインターを使用していますか?

使用する必要がある次の変数があり、割り当てのために独自のラッパーを作成する必要があります。私は割り当てを超えて (作成したこのラッパーを使用する必要があるため)、ダブルポインター配列で使用するために、ラッパーで添字演算子をオーバーロードしたいと考えています。コードでの意味は次のとおりです。

私が持っているもの:

ライブラリの指定されたヘッダーから:

私のクラス(もちろんヘッダーに含まれています):

もちろん、ダブルポインターはポインターを返すため、これは機能しません。これは、返すように指示しているものではありませんが、 *pixels& を返しても返されません。私の好奇心を満足させ、なぜこれが不可能なのかを理解するのを助けるために、誰かがこれを実装する方法を教えてもらえますか? 私はまだポインターをよく理解していないことを覚えておいてください (ポインターがどのように機能するかの基本は知っていますが、それだけです)、これを使用して理解を非常に広げたいと考えています。

0 投票する
7 に答える
914 参照

c++ - C++ の operator[] は複数の引数を取ることができますか?

operator[]複数の引数を取るオーバーロードを定義することは可能ですか? つまり、operator[]次のように定義できます。

後でこのように使用しますか?

0 投票する
4 に答える
2128 参照

c++ - std :: queueにoperator[]がないのはなぜですか?

std::queue、デフォルトでdequeを使用して実装されます。std::deque添え字演算子、、があり、operator[]おそらく配列で実装されています。では、なぜstd::queue持っていないのoperator[]ですか?

基になるコンテナとしてリストを含むキューを作成できると思います。(std::queue<int, std::list<int>>。)しかし、それによって添え字演算子が遅くなるとしても、それを含めないのは本当に正当な理由ですか?それが含まれていないと私が考えることができる唯一の理由です。

0 投票する
4 に答える
267 参照

c++ - クラス(数量詞)のサイズを設定するためにC++でSubscript[]演算子をオーバーロードします。

良い一日のみんな。

私は次の構造体とクラスを持っています、

サイズでクラスをインスタンス化したい

すなわち。他のアレイと同じようにNCA[30]