проблема с struct : vector<T>
есть у меня структура:
Код:
struct serie : vector<int>
{
serie(int i);
void update();
}
serie::serie(int i)
{
for (int j=0;j=i-1;j++) push_back(j);
}
void serie::update()
{
for(int j=10; j<=size()+10; j++)
{
insert(begin(),j);
}
}
{
serie(int i);
void update();
}
serie::serie(int i)
{
for (int j=0;j=i-1;j++) push_back(j);
}
void serie::update()
{
for(int j=10; j<=size()+10; j++)
{
insert(begin(),j);
}
}
Так вот: конструктор нормально работает, без проблем заполняет вектор-себя:). Но вот когда вызываю метод update - изменения не сохраняются в данном контейнере, то есть после выхода из метода обновления объект остается таким же, как после работы конструктора... В чем может быть причина?
вероятно не выполняется условие работы цикла
Цитата: kot_
вероятно не выполняется условие работы цикла
проверил, нормально вектор заполнился в цикле, но после выхода - вектор восстановляется к образу конструктора (имеется ввиду после выхода из метода)
Код:
void serie::update()
{
int sz = size()+10; //лучше не использовать в условии останова цикла
for(int j=10; j<=sz; j++)//меняющийся размер вектора
insert(begin(),j);
}
{
int sz = size()+10; //лучше не использовать в условии останова цикла
for(int j=10; j<=sz; j++)//меняющийся размер вектора
insert(begin(),j);
}
Код:
serie::serie(int i)
{
for (int j=0;j<=i-1;j++)// j<=i-1 !!!
push_back(j);
}
{
for (int j=0;j<=i-1;j++)// j<=i-1 !!!
push_back(j);
}
Код:
struct serie : std::vector<int>
{
serie(int);
void update();
};//!!!
{
serie(int);
void update();
};//!!!