I am learning to code in c++ and I am learning to use sets currently, with the code (I will not use the specific code because of the length but will use an example) it wants me to use a struct and a set and with the things that needs to be done I need to be able to access and edit a variable in said struct while iterating through the set.
Here is an example of what I am trying to do:
#include <iostream>
#include <set>
using namespace std;
struct myStruct
{
int testVal;
int exVal;
};
int main()
{
set<myStruct> tst;
myStruct struc;
struc.testVal = 10;
struc.exVal = 5;
tst.insert(struc);
struc.testVal = 1;
struc.exVal = 7;
tst.insert(struc);
for (set<myStruct>::iterator it = tst.begin(); it != test.end(); it++)
{
if (*it.testVal >= *it.exVal)
{
//do something
}
}
return 0;
}
but whenever I try to do something like this it always gives me a lot of errors. (This is an example so what is trying to be done may seem like a pointless reason to try to do this) One of the main errors is 'std::set<[struct name]>::iterator {aka struct std::_Rb_tree_const_iterator<[struct name]>' has no member named '[struct value name]'
(anything in square brackets is not part of the error but dependent on what is in the code)
in the case of this example I put here the error would say:
error: 'std::set<myStruct>::iterator {aka struct std::_Rb_tree_const_iterator<myStruct>' has no member named 'testVal'
So how do I extract a value from a struct inside of a set using an iterator, and even possibly change it?