私はstd::vector
を持っていて、ベクトルの最後の要素にiterator
を入れたいと思います。このイテレーターを後で使用するために保管します。end()を使ってstd :: vectorの最後の要素に反復する::
注:イテレータのリファレンスはstd::vector::back
ではありません。私は後でstd::vector::begin
からこのオブジェクトのインデックスを計算できるようにしたいからです。
次が最後の要素へのイテレータを得るために、私のロジックです:
std::vector<int> container;
std::vector<int>::iterator it = --container.end();
std::vector::end
はO(1)時間の複雑さを持っているので、これを行うには良い方法はありますか?
編集:ポストインクリメントは以下のとおり指摘されています。
私は間違ったことはありません。だから何が問題なの? – DeiDei
'container.end() - 'の代わりに '--container.end()'が必要です。また、最初にコンテナが空でないことを確認するか、未定義の動作をする必要があります。 –
aha、私は 'std :: vectorを参照しています。:: :: iterator it = container.end() - ' 'end'イテレータを取得し、イテレータをデクリメントします。 –
Quark