Могу ли я сохранить итератор после вставки пары в набор, а затем использовать этот итератор для удаления пары в наборе? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть класс с двумя методами. Всегда вызывается метод Method1, поэтому пара (значение, индекс) всегда сохраняется в наборе конечных_пунктов. В некоторых случаях мне нужно вызвать Method2 и удалить итератор из вставленной пары. Однако, когда я вызываю Method2, программа падает.

class TheClass: public ParentClass {
        public:
            TheClass(int value, int index, std::set<std::pair<int,int>>* const ending_points)
                : value_(value), index_(index), ending_points_(ending_points) {}
            ~TheClass() {}

            void Method1() {
                last_inserted_ = ending_points_->insert(std::make_pair(value_, index_)).first;
            }

            void Method2() {
                ending_points_->erase(last_inserted_);
            }

        private:
          int value_;
          int index_;
          std::set<std::pair<int64,int64>>::iterator last_inserted_;
          std::set<std::pair<int64,int64>>* const ending_points_;
    };      

Я буду очень признателен за вашу помощь.

...