struct departure_compare {
bool operator() (const Leg* lhs, const Leg* rhs) const
{
return lhs->CurrentDepartureTime() < rhs->CurrentDepartureTime();
}
};
class Station
{
uint station_number_;
std::set<Leg *, departure_compare> departure_legs_in_order_; // legs that depart from this station in order of departure time
public:
Station(uint station_number) : station_number_(station_number) {};
void addDepartureLeg(Leg *leg) { departure_legs_in_order_.insert(leg); };
const std::set<Leg *, departure_compare>& DepartureLegs() const { return departure_legs_in_order_; };
uint StationNumber() { return station_number_; };
};
Я называю это в циклестанд :: установлен уникальный указатель
Leg *new_leg = new Leg();
start_station->addDepartureLeg(new_leg); // start_station of type station
Теперь я узнал, что иногда он не вставляет new_leg
в эту структуру. Теперь я посмотрел документацию, в которой говорится, что если она уже находится в заданной структуре, то она не вставляет new_leg
. Но как это возможно, если я всегда создаю новый указатель (не должен ли адрес быть уникальным)?
Почему указатели и динамическое распределение? –
@ Планы на орбите Лучше не динамически выделять ногу и использовать прямую структуру внутри набора без указателей? Я так думал, что я сохраняю память – quesaionasis
Вы используете _more_ память таким образом, а также экономя память. –