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

Создать массив указателей с возможностью удаления любого элемента - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Из двух стеков равной длины создать один стек, не удаляя исходные стеки (создавать копии элементов) http://www.cyberforum.ru/cpp-beginners/thread1214800.html
Помогите переделать код под новое условие Старое условие: Из двух стеков равной длины создать один стек, не удаляя исходные стеки (создавать копии элементов). При создании нового стека элементы брать по-очереди по одному элементу из каждого стека. #include <windows.h> // SetConsoleOutputCP, SetConsoleCP #include <stdio.h> //printf , fgets #include <conio.h> // getch #include...
C++ Приведение к void Доброй ночи! Просматривая код некоторой программы, обнаружил конструкцию следующего вида: void function(char a, char *p) { (void) a; (void) p; } Что это значит? Никогда до этого момента такого не видел. http://www.cyberforum.ru/cpp-beginners/thread1214797.html
C++ Двумерный массив. Где ошибка?
Дана действительная квадратная матрица порядка N (N – нечетное), заполненная случайными числами, все элементы различны. Найти наибольший элемент среди стоящих на главной диагонали и поменять его местами с элементом, стоящим на пересечении этих диагоналей. # include <iostream> using namespace std; int main () { const int r=5,/*строки*/ c=5;//элементов в одной строке (столбцы) int mas ...
C++ Как в двумерном массиве найти число находящееся на пересечении двух диагоналей?
Помогите, пожалуйста! Нужно решить задачу: Дана действительная квадратная матрица порядка N (N – нечетное), заполненная случайными числами, все элементы различны. Найти наибольший элемент среди стоящих на главной диагонали и поменять его местами с элементом, стоящим на пересечении этих диагоналей. Встала проблема найти и запомнить число которое находиться на пересечении двух диагоналей!!!!...
C++ Итерационные алгоритмы http://www.cyberforum.ru/cpp-beginners/thread1214768.html
Помогите пожалуйста с заданием нужно решить на основе реккурентных отношений
C++ Найти количество наборов не являющихся знакочередующимися. Ошибка при вводе нуля Дано K наборов ненулевых целых чисел. Найти количество наборов не являющихся знакочередующимися. #include <iostream> #include <cstdlib> using namespace std; int main() { подробнее

Показать сообщение отдельно
Антон219
0 / 0 / 0
Регистрация: 09.06.2013
Сообщений: 68

Создать массив указателей с возможностью удаления любого элемента - C++

23.06.2014, 05:07. Просмотров 263. Ответов 2
Метки (Все метки)

Привет, друзья! Мне в одной программе нужно было создать массив указателей с возможностью удаления любого элемента, сделал с помощью vector. Схематично делал примерно так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
vector<Base*>arr;
Base* a = new Base;
arr.push_back(a);
a = new Base;
arr.push_back(a);
a = new Base;
arr.push_back(a);
...
Base* d = arr[n];    //удаление
arr[n] = arr.back();
arr.pop_back();
delete d;
насколько оправдано такое применения вектора? может есть способ получше? кроме того, оформление последних строк в функцию не принесло нужного результата:
C++
1
2
3
4
5
6
7
void Delete(vector<Base*> arr, int i)
{
    Base* c = arr[i];
    arr[i] = arr.back();
    arr.pop_back();
    delete c;
}
почему такое могло быть?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru