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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ijonhson
 Аватар для ijonhson
47 / 47 / 1
Регистрация: 09.03.2011
Сообщений: 584
#1

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

06.02.2013, 12:23. Просмотров 598. Ответов 10
Метки нет (Все метки)

Доброго времени суток у меня имеется двумерный vector объектов класса,добавляю туда элементы создавая одномерный veсtor и push_back к двумерному,добавление-отдельная функция которая может быть вызвана n-раз соответственоо одномерный вектор должен быть создан и удалён в пределах функции.
Подскажите синтаксис пошерстил по форуму вроде не поднимал никто такой вопрос
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2013, 12:23     Динамически создать и удалить vector
Посмотрите здесь:

Как удалить себя из массива vector? C++
C++ Удалить динамически выделенную память
C++ Удалить элемент из std::vector
динамически создать/удалить объекты класса (правильно сделал?) C++
C++ Как удалить последний элемент контейнера vector
C++ error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall Vector<int>::Vector<int>(void)" (?0?$Vector@H@@QAE@XZ) в функции _main
Удалить первый совпадающий по значению элемент из std::vector C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
 Аватар для Avazart
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,918
Записей в блоге: 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
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,918
Записей в блоге: 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
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,918
Записей в блоге: 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
7037 / 5214 / 259
Регистрация: 10.12.2010
Сообщений: 22,918
Записей в блоге: 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
Антикодер
615 / 516 / 26
Регистрация: 15.09.2012
Сообщений: 2,457
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
Еще ссылки по теме:

C++ создать класс шаблон Vector
Можно ли удалить объект std::vector, а данные оставить? C++
Структура "Vector": создать, удалить, прибавить C++
C++ Как удалить первые три элемента в std::vector?
Как можно увеличить размер вектора, который является элементом вектора vector<vector<int>>arr(n, vector <int>) C++

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

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

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