Yes, public situations are the worst! You feel embarrassed so you're own emotions are a bit higher, making it hard to act like an adult and stay calm yourself. Your child has an excuse for her behavior, she's a tot.
"Other people" always know better. I think many don't remember their own kids at that age, or never even had kids, and I don't think anybody remembers their todlerhood in enough detail to say "I never did that." Then you get the comments, "If I dared to talk to my mom like that, she would have beat me silly" - yes, and that's why they turned out the way they did, something you don't want for your own little one. We just have to grow an extra layer of skin and breath our way through these situations.
Wilhelm, my boy, only had one big outburst in a restaurant. I got up and took him to the car where he cried himself to sleep. It was not a punishment, it was showing respect to everyone else there, the crying was very loud and I didn't want it spoiling everybody's meals, so we just left. My hubby took take-aways for our meals, paid and left too. Call it what you want, but Wilhelm never ever did that again.
When I look back on this last year, 2 big mistakes I made dealing with tantrums were 1) rewarding his crying; and 2) ignoring his crying. At first I felt it was my job to make him feel better. I would scoop him up, give hugs and kisses and sweet talk, but this was very very tiring and actually made things a lot worse, his tantrums could continue for 30 minutes at a time. Then I tried ignoring him, it work like a charm for about a month, he learned within a day what I was doing and he hated it, so as soon as he sees me turn my back on him he would stop his tantrum dead! Once he stops, I'll immediately address his dilemma and give him lots of praise for stopping his outburst. BUT THEN after about a month of ignore treatment, he decided that he could be nasty too, and for the first time his tantrums really went through the roof! I could ignore him all I wanted and he would scream and scream that the neighbors actually came knocking at my door.
One thing that I did that did help (and still does for the odd tantrum I get now) is something I read about that's called TIME-IN. I'll take him away, typically going to the kitchen. I'll put him in his high chair. This is to restrain him just a little bit and because he's then high enough for me to get his attention, and I can look him right in the eye. I try to talk, if he shouts and looks away, I leave. Then typically he'll call me back, I'll say "I'm coming back, if you are ready to talk" so he'll say yes but this could take quite a few tries. The idea is not to punish him and leave him there, I keep going back immediately, but also leave immediately if he starts screaming again. I quickly get him calm, and then we talk and if he's calm and friendly, I'll scoop him up and give lots of hugs and kisses and praise.
One tip that might help with restaurant situations is to make sure you do the opposite before you go to the restaurant. Restaurant means, sit still, calm and quite, indoors, for an hour? and you'll be eating. What's the opposite? Active play, loud and busy, outside, for about an hour and don't eat (you want her slightly hungry not starving though.) Same goes for if you want her to entertain herself for a while. If you want her to spend time alone, then give her the best and truest one-on-one time before hand.
Make sure you talk to her about her feeling a lot. You could also point out other kids' emotions and reactions when you're seeing this together in town, at a friends house, TV or in books. Tell her stories about emotions too, and tell her what she could do instead of having a major outburst.
I'll also like to suggest this book -
http://www.amazon.com/The-Happiest-Toddler-Block-Four-Year-Old/dp/0553384422/ref=sr_1_1?ie=UTF8&qid=1379487832&sr=8-1&keywords=happiest+toddler+on+the+blockBut then, you could spend all your time researching, but in reality, your little one has to grow up emotionally, and that just takes time.