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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
#1

Не могу удалить из вектора - C++

20.09.2013, 08:56. Просмотров 277. Ответов 5
Метки нет (Все метки)

Доброе время суток.
Есть класс
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
class TModelAnswer
{
private:
     char FAnswer;
     float FProbability;
     AnsiString FExplanation;
     char GetAnswer() {return FAnswer;};
     void SetAnswer(char newAnswer) {if(newAnswer != FAnswer) {FAnswer = newAnswer;}};
     float GetProbability() {return FProbability;};
     void SetProbability(float newProbability) {if(newProbability != FProbability) {FProbability = newProbability;}};
     AnsiString GetExplanation() {return FExplanation;};
     void SetExplanation(AnsiString newExplanation) {if(newExplanation != FExplanation) {FExplanation = newExplanation;}};
public:
     __property char Answer = {read=GetAnswer, write=SetAnswer};
     __property float Probability = {read=GetProbability, write=SetProbability};
     __property AnsiString Explanation = {read=GetExplanation, write=SetExplanation};
     TModelAnswer()
     {
             FAnswer = 'h';
             FProbability = 0.9;
             FExplanation = "hello";
     }
     ~TModelAnswer()
     {
             FAnswer = ' ';
             FProbability = 0;
             FExplanation = "";
     }
};
Создаем вектор с этим классом
C++
1
vector<TModelAnswer> ModelAnswerArray;
Ложим в этот вектор три экземпляра этого класса, меняем одно поле и мне надо удалить измененный элемент вектора
C++
1
2
3
4
5
6
7
        TModelAnswer answer[3];
        for(int i=0; i<3; i++)
        {
                ModelAnswerArray.push_back(answer[i]);
        }
        ModelAnswerArray[1].Probability=0.1;
        ModelAnswerArray.erase(ModelAnswerArray.begin()+1);
Но почему не работает? Ошибка в удалении, что именно?
[C++ Error] _algobase.h(145): E2328 Classes with properties cannot be copied by value
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2013, 08:56     Не могу удалить из вектора
Посмотрите здесь:

Как удалить строку/столбец из двумерного вектора? C++
C++ шаблоны: не могу обеспечить реализацию значения по умолчанию для инициализации элементов вектора
как из вектора удалить отрицательные числа C++
Удалить эквивалентные пары из вектора пар при помощи стандартных алгоритмов C++
Не может удалить элемент из вектора C++
C++ Не могу удалить таблицы в БД SQLite
C++ Удалить из отсортированного вектора, числа которые являются "квадратными"
C++ Не получается удалить элементы из первого вектора, которые есть во втором
Удалить все отрицательные компоненты вектора C++
Просто не могу вывести значения из вектора C++
C++ Удалить данные из вектора (игра в города) - не могу понять, почему данные остаются в векторе?
Удалить элемент вектора посредством erase C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
Нарушитель
2321 / 1947 / 192
Регистрация: 03.07.2012
Сообщений: 6,970
Записей в блоге: 1
20.09.2013, 09:19     Не могу удалить из вектора #2
"классы со свойствами не могут быть скопированы по значению"
Наверное, нужен конструктор копирования
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
20.09.2013, 09:22  [ТС]     Не могу удалить из вектора #3
Цитата Сообщение от zer0mail Посмотреть сообщение
Наверное, нужен конструктор копирования
не очень понятно
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
20.09.2013, 10:37     Не могу удалить из вектора #4
Цитата Сообщение от Sergius X Посмотреть сообщение
Classes with properties
это какой буилдер что ли?
Croessmah
Модератор
Эксперт CЭксперт С++
12878 / 7264 / 810
Регистрация: 27.09.2012
Сообщений: 17,944
Записей в блоге: 2
Завершенные тесты: 1
20.09.2013, 10:50     Не могу удалить из вектора #5
Цитата Сообщение от Tulosba Посмотреть сообщение
это какой буилдер что ли?
Ну судя по коду - да
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
22.09.2013, 21:07  [ТС]     Не могу удалить из вектора #6
это билдер. А вот с конца вектора он почему то удаляет без проблем
C++
1
ModelAnswerArray.pop_back();
Yandex
Объявления
22.09.2013, 21:07     Не могу удалить из вектора
Ответ Создать тему
Опции темы

Текущее время: 15:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru