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

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

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

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

20.09.2013, 08:56. Просмотров 286. Ответов 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++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;ctime&gt; // function RandomInitializationVector #include &lt;algorithm&gt; void...

Удалить все отрицательные компоненты вектора - C++
дано а(5) b(10) преобразовать вектор с наименьшим min по правилу: все отрицательные компоненты вектора удалить. в программе турбо си ++

как из вектора удалить отрицательные числа - C++
Создать вектор, заполнить его случайными целыми числами в интервале от -10 до 10. Вывести в ListBox. Затем удалить из него все...

Удалить элемент вектора посредством erase - C++
# include &lt;iostream&gt; # include &lt;vector&gt; # include &lt;iterator&gt; # include &lt;string&gt; # include &lt;fstream&gt; using namespace std; ...

Удалить из вектора все значения равные заданному - C++
Подскажите пожалуйста Сделал вот такую программу #include &lt;iostream&gt; #include &lt;string&gt; #include &lt;algorithm&gt; #include...

Как удалить строку/столбец из двумерного вектора? - C++
Прошу помощи. До самого не доходит. Имеем вектор v . std::vector&lt;std::vector&lt;int&gt; &gt; v( N, std::vector&lt;int&gt;M); Как с помощью функции...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zer0mail
2330 / 1956 / 192
Регистрация: 03.07.2012
Сообщений: 7,013
Записей в блоге: 1
20.09.2013, 09:19     Не могу удалить из вектора #2
"классы со свойствами не могут быть скопированы по значению"
Наверное, нужен конструктор копирования
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
20.09.2013, 09:22  [ТС]     Не могу удалить из вектора #3
Цитата Сообщение от zer0mail Посмотреть сообщение
Наверное, нужен конструктор копирования
не очень понятно
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.09.2013, 10:37     Не могу удалить из вектора #4
Цитата Сообщение от Sergius X Посмотреть сообщение
Classes with properties
это какой буилдер что ли?
Croessmah
Модератор
Эксперт CЭксперт С++
13057 / 7320 / 817
Регистрация: 27.09.2012
Сообщений: 18,067
Записей в блоге: 3
Завершенные тесты: 1
20.09.2013, 10:50     Не могу удалить из вектора #5
Цитата Сообщение от Tulosba Посмотреть сообщение
это какой буилдер что ли?
Ну судя по коду - да
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 21:07     Не могу удалить из вектора
Еще ссылки по теме:

Просто не могу вывести значения из вектора - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;stdexcept&gt; using std::cout; using std::cin; using std::endl; ...

Не получается удалить элементы из первого вектора, которые есть во втором - C++
Нужно перегрузить оператор - что-бы удаляло из первого вектора елементы которые есть во втором #include &quot;stdafx.h&quot; #include &lt;conio.h&gt; ...

Удалить эквивалентные пары из вектора пар при помощи стандартных алгоритмов - C++
Что-то голова закипает, не могу сообразить. Есть вектор пар: std::vector&lt;std::pair&lt;int,int&gt; &gt; который содержит кроме всего прочего...

шаблоны: не могу обеспечить реализацию значения по умолчанию для инициализации элементов вектора - C++
Здравствуйте! Помогите пожалуйста разобраться с таким вот: у меня есть класс Vector который темплэйт template&lt;class T, T N&gt;...


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

Или воспользуйтесь поиском по форуму:
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     Не могу удалить из вектора
Ответ Создать тему
Опции темы

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