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

  • Автор темы Dayne
  • Дата начала
D

Dayne

Гость
#1
Доброевремя суток. Нужна помощь в написании функции, которая удаляет элемент из динамического массива.
По факту что имеем:
Код:
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(); // удаляю последний элемент
}
но в силу недостаточного опыта с задачей не справился.
Заранее спасибо!
 
D

Dayne

Гость
#3
спасибо - не знал что есть такое, а с итераторами вообще еще не разобрался. Правда еще надо поискать это все на русском :)
 
04.09.2006
2 566
2
#4
Вообще говоря, вектор является классом-значением (просьба к слову "класс" не придираться), а наследование от таких классов является дурным тоном
 
D

Dayne

Гость
#5
European, дурным тоном можно считать все что угодно, и ваше пусть даже очень авторитетное мнение тоже является субъективным. Не сочтите за грубость, но я сомневаюсь что вы являетесь одним из законодателей хорошего/дурного тона в програмировании.
Нет плохого и хорошего кода - есть работающий и не работающий((с) Кариган).
Многие рассказывают что оператор безусловного или принудительного (где-то он goto, где-то просто go, где-то еще иначе)перехода это дурной тон, а спуститесь к ассемблеру там все забудут про это
 
04.09.2006
2 566
2
#7
и ваше пусть даже очень авторитетное мнение тоже является субъективным
Во-первых, авторство этого утверждения принадлежит не мне. Хотя фамилии Саттера и Александреску врядли вам что-то скажут. Можете просветится, почитав их книгу "Стандарты программирования на С++". А во-вторых, для вас С++ это Си с классами, так что дальше говорит не о чем