Я передаю структуру по ссылке на одну функцию класса treestr и сохраняю ее там в векторе.
Затем передаю ту же структуру по ссылке на другую функцию и выполняю некоторые вычисления над данными-членами структуры.,Этот элемент данных обновляется в исходной структуре, но не в тех, которые хранятся в векторе.
(извините за любые ошибки, плохо знакомые с c ++, плохо знакомые с переполнением стека).Пожалуйста, помогите.
//Structure description
Struct point{
int x;
int y;
int cal{0};
};
Struct node{
point p;
int data; //value to be updated by func
};
int main(){
treestr * tree= new treestr(); //create object
int i=0,n=100;
vector<node> nob;
while(i<=n){
p={1,5}; //some values input by user
node n={p,i};
nob.push_back(n)//storing the struct node objects seperately in a
//vector
treestr->insert(n); //inserting into tree class
i++;
}
//calling func to do some computation on the struct objects inserted
for(i=0;i<n;i++){
int x=tree->func(nob[i]);
cout<<x.cal; //getting updated values from the function
}
for(i=0;i<N;i++){
tree->func2(nob[i]);
}
return 0;
}
//class description
class treestr{
vector<node> buck;
insert(node& n){
buck.push_back(n);
//store nodes
}
func(node& n){
//calculations
return n.cal; Value got updated in main.
}
func2(node &n){
int val1=n.cal; //this assigns updated value
int val2=buck[i].p.cal; //this assigns 0(default value)
if(val1==val2){ //never matches, val2 is 0 for all objects, val1 is
//not after getting updated
//do something
}
}
};
Cal обновляется в основной функции, но не в классе, где я хранил.Пожалуйста, игнорируйте грамматические и синтаксические ошибки, код возвращает правильный вывод, но это то, что мне нужно, чтобы улучшить мой код.
Любые возможные причины ??