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

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

но в силу недостаточного опыта с задачей не справился.
Заранее спасибо!
destr
Вообще очень интересная задача:)
Вы используете vector ну так и используйте его методы
]]>http://www.cplusplus.com/reference/stl/vector/erase.html]]>
Dayne
спасибо - не знал что есть такое, а с итераторами вообще еще не разобрался. Правда еще надо поискать это все на русском happy.gif
European
Вообще говоря, вектор является классом-значением (просьба к слову "класс" не придираться), а наследование от таких классов является дурным тоном
Dayne
European, дурным тоном можно считать все что угодно, и ваше пусть даже очень авторитетное мнение тоже является субъективным. Не сочтите за грубость, но я сомневаюсь что вы являетесь одним из законодателей хорошего/дурного тона в програмировании.
Нет плохого и хорошего кода - есть работающий и не работающий((с) Кариган).
Многие рассказывают что оператор безусловного или принудительного (где-то он goto, где-то просто go, где-то еще иначе)перехода это дурной тон, а спуститесь к ассемблеру там все забудут про это
Pasha
Dayne
Goto - это дурной тон в языках высокого уровня.
Цитата(Dayne @ 6:06:2008 - 17:03) *
Нет плохого и хорошего кода - есть работающий и не работающий((с) Кариган).
Зато есть хороший и плохой software design.
European
Цитата(Dayne @ 6:06:2008 - 17:03) *
и ваше пусть даже очень авторитетное мнение тоже является субъективным

Во-первых, авторство этого утверждения принадлежит не мне. Хотя фамилии Саттера и Александреску врядли вам что-то скажут. Можете просветится, почитав их книгу "Стандарты программирования на С++". А во-вторых, для вас С++ это Си с классами, так что дальше говорит не о чем
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.