質問: colors[label]; } ```
回答: > > 上記のようにcolols[ラベルの番号]だけで指定したラベルにアクセスできているというのが理解できません。 > > > ``` std::vector colors; ``` と宣言した場合は空の配列なので、いきなり`colors[0]`と指定はできませんが、 ``` std::vector colors(n); ``` とn個の要素を用意する指定があるために`colors[0]`~`colors[n-1]`にアクセスできます。 参考:C++ 動的配列クラス std::vector 入門 4-2.要素数を指定した宣言を参照。 指定したラベルにアクセスできるようにしているのは、以下のコードです。 ``` cv::Vec3b &pixel = dst.at(y, x); ``` ここの&は参照型といい、この型で宣言した変数に値の代入すると、参照元もその値に変更されるという便利な型なのです。 参考:参照 (C++) C++入門:3章 C++の新しい文法-> 参照型