[解決済み] イテレータの参照解除ができないのですが?
2022-03-03 16:09:51
質問
オブジェクトのベクトル(ポインタや参照ではない、プレーンなオブジェクト)がある場合、なぜこれができないのでしょうか?
Object* object;
object = vectorOfObjects.end();
または
object = &vectorOfObjects.end();
または
object = &(*vectorOfObjects.end());
また、'object' が参照であった場合にも同じ質問があります。
どのように解決するのですか?
3つのエラーに分かれています。
object = vectorOfObjects.end();
は動作しません。
end()
はイテレータを返しますが
object
はポインタです。これらは一般に異なる型です(A vector
できる
はイテレータとして生のポインタを使用しますが、すべての実装がそうであるわけではありません。他のコンテナでは、特別なイテレータ型が必要です)。
object = &vectorOfObjects.end();
がうまくいかないのは、返されたイテレータのアドレスを取るからです。つまり、イテレータへのポインタではなく
Object
.
object = &(*vectorOfObjects.end());
は動作しません。
end
イテレータは有効な要素を指していません。イテレータは有効な要素を指しておらず、シーケンスの終端を越えています。そのため、イテレータを参照することはできません。シーケンスの最後の要素を参照することはできます(これは
--vectorOfObjects.end()
を指すイテレータは使用できません。
過去
を終了します。
最後に、根本的な問題/混乱は、イテレータがポインタに変換できると考えていることかもしれません。一般的には、それはできません。コンテナがベクトルであれば、配列のように要素が連続的に割り当てられることが保証されているので、ポインタが機能します。しかし、例えば
list
要素へのポインターは役に立ちません。要素へのポインタは役に立ちません。
次
要素で構成されます。
関連
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] コピーアンドスワップ慣用句とは?
-
[解決済み] なぜC++はPythonよりもstdinからの行の読み込みが遅いのですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】なぜC++プログラマは'new'の使用を最小限に抑えなければならないのでしょうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】coutはstdのメンバではない
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++コンパイルタイムエラー:数値定数の前に期待される識別子
-
[解決済み】C++の変数はイニシャライザーを持っているが、不完全な型?
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み] gdbを使用してもデバッグシンボルが見つからない
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み】'std::cout'への未定義の参照