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

C++, удаление элемента из списка "контейнера" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввод значения в переменную типа string, память под которую выделена динамически http://www.cyberforum.ru/cpp-beginners/thread914507.html
Ребят, подскажите пожалуйста, как организовать ввод значения в переменную типа string, память под которую выделена динамически? #include<iostream> #include<string> using namespace std; int main() {
C++ Задумал написать программу имитирующую эффект матрицы 1 я проблема с которой столкнулся Я могу сделать это в консоли,но окно консоли имеет ограниченный размер, а мне очень бы хотелось на весь экран. 2 я проблема только учусь объектному мышлению, как бы лучше реализовать как класс или функционально? Буду благодарен за подсказки. Пользуюсь MSVisual Studio 2010. http://www.cyberforum.ru/cpp-beginners/thread914506.html
Что за присвоение? C++
вот код с http://www.cplusplus.com/doc/tutorial/classes/ #include <iostream> using namespace std; class CRectangle { int *width, *height; public: CRectangle (int,int); ~CRectangle (); int area () {return (*width * *height);}
Вывод букв с помощью указателей (требуется помощь) C++
Есть программа которая считывает слова из файла input.txt до тех пор пока они не закончатся. Я хочу в массив address помещать указатель на первую букву каждого слова, а в массив word_leng записывать длину слова. После считывания всех слов, зная указатель на каждое первое слово и длину каждого слова, вывести их. Как правильно создать указатель на первую букву каждого слово и как правильно потом...
C++ Cоздать ключ с шейкерной сортировкой и 2умя счетчиками (количество подсчетов и количество сравнений) http://www.cyberforum.ru/cpp-beginners/thread914458.html
создать ключ с шейкерной сортировкой и 2умя счетчиками( количество подсчетов и количество сравнений)
C++ Наследование Полиморфизм Инкапсуляция Если можно добавьте коментарии в код #include<iostream> #include<iomanip> #define MAX 100 using namespace std; struct PRICE { char name_magazine; char name_gods; int stoimost; }; подробнее

Показать сообщение отдельно
el_gato_de_Ch
35 / 35 / 1
Регистрация: 28.04.2013
Сообщений: 110
29.06.2013, 14:09     C++, удаление элемента из списка "контейнера"
ну у вас перегружены операторы декремента, постфиксный удаляет конец, префиксный начало,

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Vector Vector:: operator --() 
{ 
//если вектор пустой, то удалить элемент нельзи и генерируется исключение 
if(size==0) throw 5; // сравнение с 0 лучше делать просто if (!size)
if (size==1)//если в вектор один элемент 
{ 
size=0;   // Я ДУМАЮ тут всё понятно, если один элемент, то мы просто очищаем занимаемую память.
delete[]beg; 
beg=0; 
return *this; 
}; 
Vector temp(size,beg); // если не 1 элемент, то создаём временный буфер куда копируем текущие значения,
delete[]beg;  // освобождаем память 
size--;  // уменьшаем размер 
beg=new int[size]; // выделяем новую память для нашего вектора
for(int i=0;i<size;i++)>=temp.beg; // вот тут чего-то не хватает, либо в моей голове, либо в коде, но эту строчку я не пойму
 // судя по всему должны копироваться нужные элементы. ИМХО можно было бы сделать проще
return*this; // возвращаем указатель на наш объект
}
не пойму зачем в Vector.h дважды #pragma once

ИМХО перегруз операции декремента, не самый удачный выбор для удаления последнего и первого элементов, ваш код становится плохо читаем, я читал в книге Голуба, что перегруз операций (названия функций) должены быть интуитивно понятны пользователю операция декремента -- ассоциируется с уменьшением величины, а не с удалением элементов из классов контейнера. Что например Вы будете делать, если потребуется удалять не с начала, а из середины ?
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru