Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167

Правильно ли в приведенном примере реализовано выделение и очищение памяти под двумерный вектор

26.07.2014, 23:04. Показов 2762. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажите правильно ли я выделяю и очищаю память под двухмерный вектор

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class A
{
private: 
  std::vector< std::vector<int> >*  vec;
 
public:
  A()
  {
     vec = new std::vector< std::vector<int> >(10, std::vector<int>(10, 0));
  }
 
  ~A()
  {
    delete vec;
  }
}
Не будет ли здесь каких либо утечек?
Или как удобнее хранить вектор, если мне в конструкторе передаются размер и только тогда он заполняется.
Писал так, но у меня появляются сомнения, правильно ли это:

C++
1
2
3
4
5
6
  std::vector< std::vector<int> >  vec;
 
  A()
  {
     vec =  std::vector< std::vector<int> >(10, std::vector<int>(10, 0));
  }
Как лучше в таком случае хранить двухмерный вектор??


1) std::vector< std::vector<int> >
2) std::vector< std::vector<int> >*
3) std::vector< std::vector<int>* >*

Еще не пойму, что выгоднее 2 и 3 вариант?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2014, 23:04
Ответы с готовыми решениями:

Выделение памяти под двумерный массив
Доброе время ! Проблема такая : препод задал задачу сортировки массива произвольного типа(char* int* или double*) и сказал, чтобы любой тип...

Выделение памяти под двумерный массив
Здравствуйте! скажите пожалуйста почему нельзя выделить под двумерный массив память через функцию. т.е возможно выделить но только под...

Выделение памяти под двумерный массив С++
Гуру С++, подскажите новичку, как обратиться к элементу при следующем выделении памяти? 1)double **matr = new double * 2)double *matr...

3
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
26.07.2014, 23:32
Если используете std::vector, то ручная работа с выделением/освобождением памяти не нужна.
C++
1
std::vector<std::vector<int> > arr2d; // это есть вектор векторов целых, т.е. по сути двумерный вектор.
0
1 / 1 / 0
Регистрация: 09.07.2014
Сообщений: 167
26.07.2014, 23:36  [ТС]
То есть такой способ подойдет??

C++
1
2
3
4
5
6
7
8
9
10
11
12
class A
{
private: 
  std::vector< std::vector<int> >  vec;
 
public:
  A(int width, int height)
  {
     vec = new std::vector< std::vector<int> >(width, std::vector<int>(height, 0));
  }
 
}
0
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
26.07.2014, 23:39
Лучший ответ Сообщение было отмечено Igor Fender как решение

Решение

Цитата Сообщение от Igor Fender Посмотреть сообщение
То есть такой способ подойдет??
Зачем тебе вообще тут new?

Добавлено через 52 секунды
C++
1
2
3
4
5
6
7
8
9
10
class A
{
private: 
  std::vector< std::vector<int> >  vec;
 
public:
  A(int width, int height)
     : vec(width, std::vector<int>(height, 0))
  {}
};
и все.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.07.2014, 23:39
Помогаю со студенческими работами здесь

Выделение памяти под двумерный массив
Нужна прога на с++,в которой бы выделялась память для двумерного массива N строк такого вида,как на рисунке&gt;&gt;&gt; За ранее спасибо:)

Динамическое выделение памяти под двумерный массив
Нужно написать программу, динамически выделяем память под двумерный массив, функции ввода-вывода, функцию, которая будет складывать 2...

Неправильное выделение памяти под двумерный массив
Добрый вечер. Пишу код, по численным методам. Алгоритм разобрал, но мучаюсь с выделением памяти под свою таблицу. Никак не могу написать 2...

Динамическое выделение памяти под двумерный массив
1) Ввести построчно элементы двумерного массива чисел. Количество столбцов задается. Количество строк (не менее 1) равно максимальному по...

Динамическое выделение памяти под двумерный массив
Здравствуйте. Как мне правильно и грамотно (!) выделять память под двумерные массивы? Откуда возникла необходимость — хотел сделать...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru