Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Проблема с динамическим массивами

3.0K
28 марта 2003 года
ionn
6 / / 28.03.2003
Здравствуйте!
Мне нужно сделать динамический массив.
У меня возникла такая проблема:
Когда я пытаюсь удалить какой-нибудь элемент, он (вроде бы) удаляется но предыдущие и следующий элементы остаются связаны с ним. Как это исправить?
Или подскажите как лучше организовать этот массив.

Структуры:
Class CBot
{
struct bt
{
bt *prev,*next;
//Переменые ……………
}typedef bt;

struct sbots
{
bt *first,*end;
bt *bot;
};

sbots bots;
}
CBot cbot;
Функция удаления
void CBot::DelBot(bt *b)
{
if (b==bots.first)
{
bots.first=b->next;
b->next->prev=b->next;
}
else
if (b==bots.end)
{
bots.end=b->prev;
b->prev->next=NULL;
}
else
{
b->prev->next=b->next;
b->next->prev=b->prev;
}
delete b;
}
////////////////////////////////////////////
Вызываю функцию:
cbot.bots.bot =cbot.bots.first;
while (cbot.bots.bot!=NULL)
{
DelBot(cbot.bots.bot);
cbot.bots.bot =cbot.bots.bot->next;
}
3
28 марта 2003 года
Green
4.8K / / 20.01.2000
А не проще ли использовать vector из STL ?
358
28 марта 2003 года
moonmike
423 / / 18.10.2002
Цитата:
Originally posted by Green
А не проще ли использовать vector из STL ?


2 Green:Редкий BCB'шник знает о наличии Standart Template Library=))
2 ionn: Слушай что тебе дядьки большие да добрые говорят - Юзай STL.

3.0K
29 марта 2003 года
ionn
6 / / 28.03.2003
Цитата:
Originally posted by moonmike

2 Green:Редкий BCB'шник знает о наличии Standart Template Library=))
2 ionn: Слушай что тебе дядьки большие да добрые говорят - Юзай STL.



Что за vector?
Напишите примерчик использования, пожалуйста.

9
31 марта 2003 года
Lerkin
3.0K / / 25.03.2003
Цитата:
Originally posted by ionn


Что за vector?
Напишите примерчик использования, пожалуйста.



#include <vector>
using namespace std; // Заголовок и пространство

...

vector<int> vec;

for(int i=0;i<10;i++) {
vec.push_back(i); // Затолкать в вектор 10 чисел
}

for(int i=0;i<10;i++) {
cout << vec << endl; // Дальше как с обычным
// массивом
}

// Размер вектора, т.е. сколько там уже есть :)
cout << vec.size();

На самом деле, STL - тема достаточно обширная, так что только примером не обойтись. Лучше, конечно, поизучать евонный исходник, много интересного. :)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог