int main(int argc, char* argv[])
{
using namespace std;
map<string, long> directory;
directory["Bogart"] = 1234567;
directory["Bacall"] = 9876543;
...
// Read some names and look up their numbers:
string name;
while (cin >> name)
if (directory.find(name) != directory.end())
cout << "The phone number for " << name
<< " is " << directory[name] << "\n";
else
cout << "Sorry, no listing for " << name << "\n";
return 0;
}
#include <string>
using namespace std;
...
map<string, int> words;
string tword;
while ( cin >> tword)
words[tword]++;
int count = 0;
map<string, int>::iterator it;
it = words.find( "vermeer" );
if ( it != words.end() )
count = it->second;
isMapItor pos = c.find(123);
if(pos != c.end())
{
//. 요소를 삭제하면 그것을 가리키는 반복자는 무효화 된다.
//. 그 상태에서 그냥 pos++ 를 호출하면 정의되지 않은
//. 행동이 발생할 것이다.
c.erase(pos);
}
//. 값에 기반해서 특정한 요소를 찾고 제거한다.
pos = find_if(c.begin(), c.end(), value_equals<int, string>("Ninety Nine"));
if(pos != c.end())
c.erase(pos);
//. 루프 도중에 요소를 제거하는 경우에는 이런식으로..
for(isMapItor itr = c.begin(); itr != c.end();)
{
if(itr->second == "Three")
c.erase(itr++);
else
++itr;
}