2 つのデータ メンバー x、y を持つ Position という構造体を宣言します。これらの構造体のインスタンスを std::set に格納したいと考えています。後で正しい Position 構造体から x、y の値を取得するにはどうすればよいですか?
struct Position
{
long m_x;
long m_y;
Position(long x, long y) : m_x(x), m_y(y) {}
}
std::set<Position> m_visited;
私が実装しようとしているのは、2D マップ内のエンティティの追跡システムです。エンティティが移動するたびに、その現在位置がセットに記録されるため、後でどこに移動したかを知ることができます。
移動するたびにこれを呼び出して、現在の位置を記録します。
m_visited.insert(Position(CorX(),CorY());
そして後で、私のエンティティが移動しようとしている新しいセルが訪問されたかどうかを確認したいと思います。もしそうなら、私はエンティティに他の細胞を選んで何かをするように言います。
for (set<Position>:iterator i = m_visited.begin(); i != m_visited.end(); i++)
{
if ([X cor of next cell] != [X cor of a visited cell] && [Y cor of next cell] != [Y cor of a visited cell])
{
do something
}
}
問題は、比較する適切なデータを持つ適切なセルを見つける方法がわからないことです。これが本当に紛らわしいと思われる場合は申し訳ありません