std::map から Vector へのキーと値の取得
std::map を使用する場合、多くの場合、次のことが必要になります。キーまたは値のいずれかを個別に処理します。カスタム ファンクターを定義することでこのタスクを達成できますが、より効率的な方法も利用できます。
イテレータの使用:
最も簡単なアプローチは、std::map イテレータを使用することです。 :
std::map<int, int> m; std::vector<int> keys; std::vector<int> values; for (std::map<int, int>::iterator it = m.begin(); it != m.end(); ++it) { keys.push_back(it->first); values.push_back(it->second); std::cout << "Key: " << it->first << std::endl; std::cout << "Value: " << it->second << std::endl; }
ブーストの使用ライブラリ:
Boost ライブラリを使用している場合は、BOOST_FOREACH マクロを活用して簡素化できます。
std::map<int, int> m; std::vector<int> v; BOOST_FOREACH(const std::pair<int, int>& me, m) { v.push_back(me.first); std::cout << me.first << "\n"; }
これらのアプローチを利用することで、複雑なファンクターを必要とせずに、std::map のキーまたは値をベクトルに変換します。
以上がstd::map からキーと値を効率的に抽出してベクターにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。