What would be the best strategy for grouping these objects together? (vector, array, etc)

My question is what would be the best way to organize objects(both the initial 12 and the offspring to come later)? I feel that a vector would be the best way of doing this (keep in mind that I am a beginner to C++ so I do not know a ton) but we also need to create at least one class.

Would the variable type be a string, int, etc or would it be Animal*? What would the vector elements look like? Any examples or advice would be much appreciated.
Last edited on
its up to you. KISS suggests you just have your class be critter-type, critter-age, critter-gender, and anything else you need and have a single container of those. you can sort it by type to iterate the breeding easier. Since you can use age, you can resort it to have then printed by their creation date/oldest first at the end.

a vector of those sounds great.
its a vector of animal class. no need for pointer nonsense. **

1
2
3
4
5
6
7
8
9
enum animal_types {invalid, dog, cat, shark, goldfish, ...}
class animal
{
  animal_types mytype{}; //invalid default
  unsigned int age{}; 
  char gender{}; //'m' and 'f' or 0,1 or whatever anything goes here even strings of "male" "female" 0 is invalid assumed for the {} default, 
//if you use 0,1 then {42} initialize can be invalid marker.
};
vector<animal> ark_inventory;


**ok, off the deep end of the pool, it can be useful here to have multiple vectors of pointers to sort the data, eg a vector sorted by age and another by type (and then by gender)
sorting pointers is much, much faster than sorting fat objects. If you had billions of them and ran the sim for 5000 years or something, ok, we can go over all that. Its not going to be a big deal for a classroom assignment on a modern computer to do a few thousand critters in a fraction of a second.

a question now is what kind of methods you need.
you need something to age all the critters.
you need something to print them out.
you need something to 'breed' them based off your rules. The % operator can tell you if something that is 27 months old should be breeding or not... 27%9 is zero, its time for a bird to breed, but 27%6 is not, a fish would not be ready... (that isnt quite right, you don't want to breed on day 0/right away, but the % will help you when you get to that part)
Last edited on
Topic archived. No new replies allowed.