std :: mapからすべてのキー(または値)を取得してベクターに入れる方法は?
これは私が出てくる可能な方法の1つです。 struct RetrieveKey { template <typename T> typename T::first_type operator()(T keyValuePair) const { return keyValuePair.first; } }; map<int, int> m; vector<int> keys; // Retrieve all keys transform(m.begin(), m.end(), back_inserter(keys), RetrieveKey()); // Dump all keys copy(keys.begin(), keys.end(), ostream_iterator<int>(cout, "\n")); もちろん、別のファンクターRetrieveValuesを定義して、マップからすべての値を取得することもできます。 これを簡単に達成する他の方法はありますか?(なぜstd :: mapにそうするためのメンバー関数が含まれていないのか、いつも疑問に思っています。)