C++のハッシュ連想配列クラスunordered_mapについての質問です。
IPアドレスとホスト名の対応を標準入力から読み、コマンドライン引数に指定したホスト名に対応するIPアドレスを出力したいのですが、指定したホスト名に対応するIPアドレスだけを出力するコードが分かりません。
テキストファイルに
127.0.0.1 localhost
::1 ip6-localhost
10.30.5.1 ehime.sun.ac.jp
と書き、
./a/out ehime.sun.ac.jp < test.txt
と打つと
10.30.5.1
と表示されるようにしたいです。
今の段階で書いているコードは以下の通りです。
#include<iostream>
#include<string>
#include<boost/algorithm/string.hpp>
#include<boost/tokenizer.hpp>
#include<unordered_map>
using namespace std;
using namespace boost;
typedef char_separator<char> CHAR_SEPARATOR;
typedef tokenizer<CHAR_SEPARATOR> TOKENIZER;
int main(int argc, char *argv[]) {
unordered_map<string, string>histogram;
string line;
CHAR_SEPARATOR separator(" ");
while(getline(cin, line)){
TOKENIZER tokens(line, separator);
for (auto token = tokens.begin(); token != tokens.end() ;token++) histogram[*tokens.begin()]=*tokens.end() ;
}
for (auto i = histogram.begin(); i !=histogram.end(); i++)
cout << i->first<<endl ;
return 0;
}
回答よろしくお願いします。