What is supposed to happen is that the user should type in an integer. It should print that amount of statuses, but I'm wondering if I messed up in any of the classes, loops, etc.
Line 44: status is always 'h'.
Line 47: A std::map can only have only entry with a specific key. Your first insert will work. Subsequent inserts will fail since an entry with status 'h' already exists.
If you want to create multiple islands with the same status, use std::multimap which allows duplicate keys.