3 つの float x、y、z (3-D 空間座標) を取る point3 構造体があります。
ポイントのリスト内の各要素の x、y、z 値を変換する関数を作成しようとしています。
私はC++が初めてなので、イテレータを正しく書いたとは思いません。リストを反復してリスト内の各要素のコンポーネントを変更する方法を明確にするのに役立つ人はいますか?
この投稿C++ How to loop through a list of structs and access their propertiesを見て、これで問題が解決したと思いましたが、解決策はうまくいきませんでした。
これが私のコードです:
//Translates the face by dx, dy, dz coordinates
list<point3> translateFace(list<point3> lop, float dx, float dy, float dz)
{
list<point3>::iterator iter;
for (iter = lop.begin() ; iter != lop.end(); iter++){
iter->x - dx;
iter->y - dy;
iter->z - dz;
}
return lop;
}
上記のリンクで提案されている解決策も試しましたが、まだ機能しませんでした。return lopはfor ループの内側または外側にあるべきですか? lop 以外のものを返す必要がありますか?
for (iter = lop.begin() ; iter != lop.end(); iter++){
(*iter).x - dx;
(*iter).y - dy;
(*iter).z - dz;
}
return lop;