Форум программистов, компьютерный форум CyberForum.ru

Динамически создать и удалить vector - C++

Восстановить пароль Регистрация
 
ijonhson
 Аватар для ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
06.02.2013, 12:23     Динамически создать и удалить vector #1
Доброго времени суток у меня имеется двумерный vector объектов класса,добавляю туда элементы создавая одномерный veсtor и push_back к двумерному,добавление-отдельная функция которая может быть вызвана n-раз соответственоо одномерный вектор должен быть создан и удалён в пределах функции.
Подскажите синтаксис пошерстил по форуму вроде не поднимал никто такой вопрос
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
06.02.2013, 12:27     Динамически создать и удалить vector #2
Код приведите, а то как-то не понятно в чем проблема...
ijonhson
 Аватар для ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
06.02.2013, 13:02  [ТС]     Динамически создать и удалить vector #3
код черезчур длинноват попробую смысл передать
h.
C++
1
2
3
4
5
6
7
8
9
10
11
class coord
{
public:
int x1,y1,x2,y2;
coord(int,int,int,int);
};
class b
{
public:
void addfunc();
};
.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
vector <vector<coord> > points;
coord::coord(xl1,yl1,xl2,yl2)
{
x1=xl1;x2=xl2;y1=yl1;y2=yl2;
}
b::addfunc()
{
vector<coord> a;
a.push_back(coord(10,10,20,20));
a.push_back(coord(20,20,40,40));// и т.д.
points.push_back(a);// с этого момента а уже не нужен мало того  
}                          //это лишний мусор который будет висеть до завершения программы
Добавлено через 10 минут
то есть как грамотно удалить вектор и к какому классу относится vector?
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
06.02.2013, 13:06     Динамически создать и удалить vector #4
Блин чего вы лезете в STL не зная основ ?

Читайте про области видимости в C++, к примеру http://valera.asf.ru/cpp/book/c08.html.

Добавлено через 42 секунды
Цитата Сообщение от ijonhson Посмотреть сообщение
C++
1
//это лишний мусор который будет висеть до завершения программы
С какой стати ?
ijonhson
 Аватар для ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
06.02.2013, 13:08  [ТС]     Динамически создать и удалить vector #5
vector<coord> *a=new vector();
или vector<coord>* a=new vector<coord>();
или vector<coord>* a=new coord();
или другой вариант?
и потом
delete a; или как-то по другому
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
06.02.2013, 13:10     Динамически создать и удалить vector #6
Цитата Сообщение от ijonhson Посмотреть сообщение
vector<coord> *a=new vector();
или vector<coord>* a=new vector<coord>();
или vector<coord>* a=new coord();
или другой вариант?
и потом
delete a; или как-то по другому
Хватит быдлокодить, читайте книги...
ijonhson
 Аватар для ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
06.02.2013, 13:13  [ТС]     Динамически создать и удалить vector #7
то что vector видно только в функции понятно но разве по завершении функции vector удаляется сам по себе? насколько я себе раньше представлял всё что создано статически живёт до конца выполнения программы
Avazart
 Аватар для Avazart
6904 / 5144 / 253
Регистрация: 10.12.2010
Сообщений: 22,621
Записей в блоге: 17
06.02.2013, 13:16     Динамически создать и удалить vector #8
Цитата Сообщение от ijonhson Посмотреть сообщение
насколько я себе раньше представлял всё что создано статически живёт до конца выполнения программы
У вас глюки, курите мануалы, а не то что курите сейчас.
Пёс
 Аватар для Пёс
228 / 76 / 4
Регистрация: 03.02.2013
Сообщений: 311
06.02.2013, 15:08     Динамически создать и удалить vector #9
Цитата Сообщение от ijonhson Посмотреть сообщение
то что vector видно только в функции понятно но разве по завершении функции vector удаляется сам по себе? насколько я себе раньше представлял всё что создано статически живёт до конца выполнения программы
статически создано, это значит так:

C++
1
static vector<coord> a;
и да, оно будет жить до конца программы.

PS соглашусь с avazart'ом вам надо учить основы, а не векторы динамически создавать.
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
06.02.2013, 15:35     Динамически создать и удалить vector #10
пытайтесь избегать ситуаций когда приходится делать delete.

принцип простой - черный ящик. Подали на вход метода данные, получили результат на выходе.

Создайте в атрибутах класса(в секции private), например
C++
1
vector <vector<coord> > points;
вектор сам удалится когда уничтожится объект
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.03.2013, 17:08     Динамически создать и удалить vector
Еще ссылки по теме:

Можно ли удалить объект std::vector, а данные оставить? C++
Структура "Vector": создать, удалить, прибавить C++
C++ Как удалить первые три элемента в std::vector?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
17.03.2013, 17:08     Динамически создать и удалить vector #11
Цитата Сообщение от ijonhson Посмотреть сообщение
насколько я себе раньше представлял всё что создано статически живёт до конца выполнения программы
Создается на стеке, потом стек чистится (вызываются деструкторы) и объекты уничтожаются.
Цитата Сообщение от XRuZzz Посмотреть сообщение
вектор сам удалится когда уничтожится объект
Вектор это класс. Мы создаем объект класса вектор(экземпляр). Когда стек чистится - он уничтожится.
Yandex
Объявления
17.03.2013, 17:08     Динамически создать и удалить vector
Ответ Создать тему
Опции темы

Текущее время: 05:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru