std::map example

// std::map example
// opposite words

#include <iostream>
#include <map>
#include <string>
using namespace std;

typedef std::map<std::string, std::string> TStrStrMap;
typedef std::pair<std::string, std::string> TStrStrPair;

int main(int argc, char *argv[])
{
	TStrStrMap tMap;

	tMap.insert(TStrStrPair("yes", "no"));
	tMap.insert(TStrStrPair("up", "down"));
	tMap.insert(TStrStrPair("left", "right"));
	tMap.insert(TStrStrPair("good", "bad"));

	std::string s;
	std::cout << "Enter word: " << std::endl;;
	std::cin >> s;


	std::string strValue = tMap[s];
	if(strValue!="")
	{
		// Show value
		std::cout << "Opposite: " << strValue << endl;
	}
	else
	{
		TStrStrMap::iterator p;
		bool bFound=false;
		// Show key
		for(p = tMap.begin(); p!=tMap.end(); ++p)
		{
			std::string strKey;
			strValue = s;
			strKey= p->second;
			if( strValue  == strKey)
			{
				// Return key
				std::cout << "Opposite: " << p->first << std::endl;
				bFound = true;
			}
		}
		// If not found opposite word
		if(!bFound)
		{
			std::cout << "Word not in map." << std::endl;
		}
	}
	return 0;
}