Dude, there is never a valid reason to cheat on someone. Sure some reasons make it more understandable than others, but there is never a valid excuse to cheat. If she had any moral code she would have broken up with you first.
I get where you are coming from. I lost a perfect girl some years ago and I still think about her a lot. She was above my league at the time in any way imaginable. She could be (and was often asked) to be a model, has one of the most impressive CV's that I know of, was smart, kind, great in bed but most of all... she loved me above anything else.
And I stil mananged to f*** that up because I took myself for granted and by doing so I pushed her away. I whined for her for months and even years later I could still feel sad about her and compare everyone I date to her. We even almost reconnected years later but it simply was not meant to be for us.
You are not the first one to go through this and you will certainly not be the last. But you need to move on. That does not mean that you have to force yourself to forget her but to force yourself to become the man that can attract better partners than her. By doing so, you will forget her because at the end of the day, this was not a good girl for you and once you grow a person, you will see this as well. You are also not sad because you miss her, you miss how she made you feel about yourself and that is not true love. That is dependence.