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

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

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

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

20.09.2013, 08:56. Просмотров 288. Ответов 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
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.09.2013, 08:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Не могу удалить из вектора (C++):

Удалить данные из вектора (игра в города) - не могу понять, почему данные остаются в векторе? - C++
Ребят, почему так выводит(все время первый город вектора)? vector&lt;string&gt; wcities; vector&lt;string&gt; Bot::Insert(string put) { ...

Не может удалить элемент из вектора - C++
#include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;ctime&gt; // function RandomInitializationVector #include &lt;algorithm&gt; void...

Удалить элемент вектора посредством 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++
дано а(5) b(10) преобразовать вектор с наименьшим min по правилу: все отрицательные компоненты вектора удалить. в программе турбо си ++

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

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

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
zer0mail
2334 / 1960 / 192
Регистрация: 03.07.2012
Сообщений: 7,033
Записей в блоге: 1
20.09.2013, 09:19 #2
"классы со свойствами не могут быть скопированы по значению"
Наверное, нужен конструктор копирования
0
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
20.09.2013, 09:22  [ТС] #3
Цитата Сообщение от zer0mail Посмотреть сообщение
Наверное, нужен конструктор копирования
не очень понятно
0
Tulosba
:)
Эксперт С++
4396 / 3239 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
20.09.2013, 10:37 #4
Цитата Сообщение от Sergius X Посмотреть сообщение
Classes with properties
это какой буилдер что ли?
0
Croessmah
Эксперт CЭксперт С++
13231 / 7503 / 846
Регистрация: 27.09.2012
Сообщений: 18,430
Записей в блоге: 3
Завершенные тесты: 1
20.09.2013, 10:50 #5
Цитата Сообщение от Tulosba Посмотреть сообщение
это какой буилдер что ли?
Ну судя по коду - да
0
Sergius X
1 / 1 / 0
Регистрация: 04.06.2011
Сообщений: 15
22.09.2013, 21:07  [ТС] #6
это билдер. А вот с конца вектора он почему то удаляет без проблем
C++
1
ModelAnswerArray.pop_back();
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.09.2013, 21:07
Привет! Вот еще темы с ответами:

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

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

Удалить из вектора все элементы, которые кратны заданному числу - C++
Добрый вечер/ночь/день, помогите пожалуйста исправить ошибки #include &lt;iostream&gt; #include &lt;vector&gt; #include &lt;stdlib.h&gt; using...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.09.2013, 21:07
Ответ Создать тему
Опции темы

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