I start by saying that, as @RicardoPontual indicated in the comments, C ++ does not need to include the word struct
in the use of the structure. In addition, since% w / o% of something with dynamic size can cut the startup it has, and simplify the declaration by leaving only:
vector<configcarros> cars;
Insert structures in <vector>
To insert structures into the vector, you can create the structure itself, set its values, and add through the <vector>
:
configcarros c1; //criar objeto da estrutura
c1.num_car = 1; //definir o valor para num_car
c1.tempodevolta = 30; //definir o valor para tempodevolta
cars.push_back(c1); //adicionar ao vetor
You can even use a more direct boot by doing:
configcarros c2{2, 35}; //inicializar logo com os 2 valores
cars.push_back(c2);
Or do everything inline :
cars.push_back(configcarros{5,15});
Read structures stored in push_back
The reading is done as if it were a normal array using <vector>
and [
, placing the position you want to access in the middle. So to access the ]
field of the first vector position, the num_car
position would do:
cars[0].num_car
To show the two values of the first car in the console you can do:
cout<<cars[0].num_car<<" "<<cars[0].tempodevolta;
When you need to go through all you should use a loop / cycle, in which 0
is usually the most appropriate. There are many different ways of doing this for
but I will illustrate the most simple and classic:
for (int i = 0; i < cars.size(); i++){
cout<<cars[i].num_car<<" "<<cars[i].tempodevolta<<endl;
}
It is important to note that for
is based on vector size, calling the for
of it. In order to keep everything in line on the screen, I added a size
at the end of endl
Example of all this on Ideone
Documentation