I've said it a hundred times before, but I'll say it again.
Learning C++ isn't a mammoth task.
I found it pretty easy once I accepted my dependency on libraries.
(I hadn't realized that in my old language, libraries were already in use automatically)
Note:
There are some very steep parts of the learning process once you get into it,
but the initial climb is sugar coated and happy.
I think a rogue-like may have been too much for you as a learning exercise.
It became increasingly harder to tell you that you shouldn't keep piling on features,
just because I knew how to do them.
You really need to go back to the beginning, look through the code,
and figure out exactly how all of it works.
Once you can fully grasp how those houses in your code work,
(including the double FOR loop)
I think you'd be ready for adding in something new.
Classes though...
I struggled with glasses for a week before getting it,
because I didn't really know what the purpose of them was.
I was looking to them as a way to capsulize my game,
(which they are good for)
but completely forgetting about there actual purpose.
Classes are like empty shell schematics for objects in your game.
You basically need some sort of class or struct to pull of any sort of rogue-like.
Anyways, I recommend you overlook the code with someone,
and ask them about bits you aren't sure about, and things that are harder to understand.
Actually, your code would be perfect for Atomic Winter to take a gander at,
as he seems to know all of the key concepts at work,
just hasn't really seen them in action doing anything more complex.
I think the house code would even confuse him though. : )