STL C++ を使用してマップを作成しようとしています。しかし、私は問題に直面しており、正確に何が間違っているのかを理解できません。
デモンストレーションのために、ここにコードを書きます。
#include <map>
#include <iostream>
using namespace::std;
struct COORD{
int X;
int Y;
bool operator<(const COORD &other) const { return X == other.X && Y == other.Y;}
COORD(int x, int y) {
X = x;
Y = y;
}
};
struct CAR{
double speed;
double model;
double direc;
CAR() {}
CAR(double c1, double c2, double c3) {
speed = c1;
model = c2;
direc = c3;
}
};
int main(int argc, char **argv) {
map <COORD, CAR> p;
p.insert(pair<COORD, CAR>(COORD(20, 20), CAR(10.0, 10.0, 10.0)));
p.insert(pair<COORD, CAR>(COORD(20, 30), CAR(20.0, 10.0, 10.0)));
CAR c1 = p.at(COORD(20, 30));
cout << c1.speed << "\n";
return 0;
}
したがって、コードを実行すると、新しく挿入された値は表示されません。実際、古いものを更新しようとすると、それも機能しません。誰が何が悪いのか教えてもらえますか。なぜこれが起こっているのですか?