std :: listの要素の位置を提供するオーバーロードされたブラケット演算子を作成する方法を知りました。std :: listのオーバーロードされたブラケット演算子
次のように私のクラスのリスト宣言は次のとおりです。
std::list<Stimulation*> configuration;
オーバーロードされたブラケット演算子の宣言は次のとおりです。
std::list<Stimulation*>::operator[](const int);
私は次のようにブラケットオペレータのdefintionは行くだろうと理解します:
std::list<Stimulation*>::operator[](const int position)
{
auto i = configuration.begin();
return i + position;
***OR***
std::list<Stimulation*>::iterator i = configuration.begin();
return i + position;
}
私はこのコンセプトには新しいので、どんな助けでも感謝しますこれを行う正しい方法で縛られている。この状況では、他のコンテナにライブラリの一部としてブラケット演算子が含まれていることを知っているので、リストを特に使用する必要があります。あなたの忍耐と時間をもう一度ありがとう。
なぜ 'list'にブラケット演算子がないのでしょうか。これは、要素から要素へ移動する必要があるためです。したがって、O(n)アクセスです。 'for'を使ってループしなければなりません。反復している要素の数を数える必要があります。 –
それはできません。 –
ya私はそれを読んだが、私が得ているこの仕様はそれを求めているので、正確に何をするのか分からなかった。 –