I wanna share some tips for you :)
Having a body shape like Cameron Diaz is a bless because you can wear any kinds of clothes like a straight dress or even skinny jeans mixed with a sexy sleeveless blouse.
If you belong to this type, you should avoid tight dresses or blouses because you will show off your bigger upper part. Instead, you should find A-line dresses which have less embellishments or detailing on the lower part.
Pear shape has bigger lower part. Therefore, you should avoid wearing dresses with much detailing or many embellishments on that part. Wearing a dress which has more detailing on the upper part can hide your bigger hips.
I have this shape and I have found the best way to hide my narrow waist because both upper and lower parts are bigger. A-line dresses will suit you best. Trust me :)