c++ イテレータループでの痛恨のミス

間違い探しです.手抜き気味の記事です.


    vector<int> mat;
for (int i : mat){
const Hoge& h = hooge[i];
}

と書くべき箇所を
    for (const Hoge& h : mat){
}

と書いてしまいました.
このとき,どのように動作するか?

全体のコード


実行結果@標準出力
1 2 3
100 200 300
-----
0 0 0
1 0 0


    for (const Hoge& h : mat){
}

と書いてしまったコードは,

    for (const int& e : mat){
const Hoge h(e);
}

と同様の動作をしている様子.知らなかった.


スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++RubyJavaUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1276位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
225位
アクセスランキングを見る>>