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

Как удалить себя из массива vector? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Стек содержащий только положительные числа http://www.cyberforum.ru/cpp-beginners/thread393456.html
Итак, я имею стек вот код: // stack a.cpp : main project file. #include "stdafx.h" #include <cstdlib> #include <iostream> using namespace std;
C++ Пересечение строк матриц Доброго времени суток :) Нужна помощь в составлении кусочка кода, который реализует пересечение строк матриц... Например дано два массива n и m и надо получить третий массив g с общими строками... http://www.cyberforum.ru/cpp-beginners/thread393454.html
Конструктор копирования(быстрый вопрос) C++
Вроде бы все просто и логично, но в итоге выполнения B не копируется в A :C why? #include <iostream> using namespace std; class Int { int a; public: Int() {a = 0;} Int(int A) {a = A;}
Неправильная работа с файлами C++
#include <iostream.h> #include <fstream.h> #include <windows.h> #include <string> struct student { char name; char address; int old; //int marks;
C++ Графика с (задача) http://www.cyberforum.ru/cpp-beginners/thread393442.html
Медленное печатание. Заданный текст печатать крупными буквами с некоторыми паузами между буквами, сопровождая каждую букву звуковым щелчком. Перенос осуществлять только целыми словами. Помогите с...
C++ Шаблонная функция Учу c++, в книге приводится вот такой листинг примера работы шаблонной функции, однако он не компилится, выдает ошибку error C2668: swap: неоднозначный вызов перегруженной функции вот сам листинг... подробнее

Показать сообщение отдельно
Bers
Заблокирован
04.12.2011, 19:36
C++
1
2
3
4
5
6
7
8
9
10
11
pTest = &v[x];  //взяли адрес 7 элемента
cout << "pTest->i = " << pTest->i << endl;   //показали его
cout << "pTest->Remove();" << endl;           
pTest->Remove();                                       //удалили его
 
//внутри вектора произошло смещение всех элементов 
//Вектор "уменьшился", "сжался"
//теперь указатель указывает на другой элемент
//шедший следом, за тем, что был удалён
 
cout << "pTest->i = " << pTest->i << endl;
/зы я называю подобные конструктивы "клюкалами"
Потому что оно шаткое, за ним глаз да глаз. В любой момент может сделать "клюк..."
Анекдот про клюкало знаете?)

Данная конструкция имеет:
1. Нарушение инкапсуляции класса.
2. Нарушение инварианта класса.

Вообще, конструкции, в которых внутренние данные классов зависят от корректности манипуляций, выполняемых снаружи ненадежны, и несут в себе потенциальную мину замедленного действия.

Поэтому, в ситуациях, когда:

Цитата Сообщение от Xtir Посмотреть сообщение
ну например для того что бы пересадить этого пассажира на другой "автобус
Я бы сделал инвариантный автобус, и инвариантного пассажира. Что бы не иметь проблем, из-за переусложненной логики, которая потенциально таит в себе опасности.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru