Удаление элемента в динамическом массиве

Тема в разделе "Общие вопросы по С и С++", создана пользователем Dayne, 4 июн 2008.

  1. Dayne

    Dayne Гость

    Доброевремя суток. Нужна помощь в написании функции, которая удаляет элемент из динамического массива.
    По факту что имеем:
    Код (Text):
    class rl: public vector <int> // создаю новый класс на основе vector
    {
    public:
    bool    sign;   // переменная sign - отвечает за знак числа
    int speed;  // переменная speed - отвечает за скорость изменения внутреннего поля
    void         del(int);  // функция-член удаления N-го элемента

    };
    Что нужно - нужна реализация функции del(int n), которая будет удалять n-ый элемент из массива и при этом размер массива должен оставаться корректным. Я пытался написать эту функцию
    Код (Text):
    void rl::del(int n)
    {
    for(int i=n;i<this->size()-1;i++)this[i]=this[i+1]; // сдвигаем элементы от n-го до последнего на 1 влево
    this->pop_back(); // удаляю последний элемент
    }
    но в силу недостаточного опыта с задачей не справился.
    Заранее спасибо!
     
  2. destr

    destr Гость

  3. Dayne

    Dayne Гость

    спасибо - не знал что есть такое, а с итераторами вообще еще не разобрался. Правда еще надо поискать это все на русском :)
     
  4. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Вообще говоря, вектор является классом-значением (просьба к слову "класс" не придираться), а наследование от таких классов является дурным тоном
     
  5. Dayne

    Dayne Гость

    European, дурным тоном можно считать все что угодно, и ваше пусть даже очень авторитетное мнение тоже является субъективным. Не сочтите за грубость, но я сомневаюсь что вы являетесь одним из законодателей хорошего/дурного тона в програмировании.
    Нет плохого и хорошего кода - есть работающий и не работающий((с) Кариган).
    Многие рассказывают что оператор безусловного или принудительного (где-то он goto, где-то просто go, где-то еще иначе)перехода это дурной тон, а спуститесь к ассемблеру там все забудут про это
     
  6. Pasha

    Pasha Гость

    Dayne
    Goto - это дурной тон в языках высокого уровня.
    Зато есть хороший и плохой software design.
     
  7. European

    Регистрация:
    4 сен 2006
    Сообщения:
    2.580
    Симпатии:
    0
    Во-первых, авторство этого утверждения принадлежит не мне. Хотя фамилии Саттера и Александреску врядли вам что-то скажут. Можете просветится, почитав их книгу "Стандарты программирования на С++". А во-вторых, для вас С++ это Си с классами, так что дальше говорит не о чем
     
Загрузка...

Поделиться этой страницей