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

Проблема с указателем на элемент вектора - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Способы затолкать OpenCL и C++ в один файл http://www.cyberforum.ru/cpp-beginners/thread1499323.html
Я лично пробовал способы затолкать OpenCL в C++ файл одним нетривиальным способом: использовать трюк с #ifdef чтобы компиляторы не конфликтовали и не выдавали друг другу ошибку. Так можно было использовать общие функции. Однако приходилось включать определенные флаги при компиляции OpenCL. Скоро выйдет OpenCL 2.1, правда не известно будет ли нативный способ затолкать OpenCL в C++ файл. Если да,...
C++ Какие независимые друг от друга изменения позволят коду отработать корректно? Какие независимые друг от друга изменения позволят коду отработать корректно: class Сountеr { public: // 1 void Count(); // 2 }; int main() { Сountеr obj; http://www.cyberforum.ru/cpp-beginners/thread1499313.html
C++ Перегрузка операций
Цитата из Р. Лафоре "Объекто-ориентированное программирование в C++": Объект, стоящий с левой стороны операции ... вызывает функцию оператора. Объект, стоящий справа от знака операции, должен быть передан в функцию в качестве аргумента. Далее идет пример: #include <iostream> using namespace std; //---------------------------------------------------------------------------//...
Сортировка массива c++ std :: sort() C++
Дан двумерный массив символов char M, надо отсортировать его при помощи std :: sort(), построчно, т.е. допустим было 00011 11111 00000 00000 11111 А стало 00000 00000 00011
C++ Как отправить почту через Telnet? http://www.cyberforum.ru/cpp-beginners/thread1499247.html
Не получается оправка почты через telnet. Пробую mail, yandex не работает. Возможно ли отправить?
C++ Запомнить, какое число меньше 437, записать его в переменную и больше не изменять. Найти ошибку Добрый день, решал задачу, нужно было сделать так, чтобы программа запомнила, какое число меньше 437 и записала его в переменную number, а также, чтобы потом уже не перезаписывала его, но почему то данные в функцию посылаются некорректно, где допущена ошибка? Код: #include <iostream> using namespace std; int check(int a, int b) { подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6176 / 2905 / 284
Регистрация: 04.12.2011
Сообщений: 7,733
Записей в блоге: 3
16.07.2015, 14:31     Проблема с указателем на элемент вектора
Цитата Сообщение от DrOffset Посмотреть сообщение
Только вот есть два момента. Если мы удаляем из вектора, например из середины, то адреса следующих за удаленным объектов изменятся.
В векторе же указатели TNode*. Их адреса не используются. А адреса которые в них хранятся не изменяются. Хуже другое. Если в классе хранится булева переменная вроде is_valid, то где она будет когда память из под объекта освободится. Во многих тестах там где и была, но разве это путь к победе?
Тут надо указатель оборачивать чем-то, но тогда уж лучше смарт использовать какой-то.
Или сделать один класс полем другого и обращаться по указателю только через владельца. В идеале вообще не давать указатель наружу.
 
Текущее время: 11:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru