วิธีการดึงกุญแจทั้งหมด (หรือค่า) จาก std :: map และวางลงในเวคเตอร์?
นี่เป็นวิธีหนึ่งที่ฉันสามารถทำได้: 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")); แน่นอนว่าเราสามารถดึงค่าทั้งหมดออกจากแผนที่ได้ด้วยการกำหนด functor RetrieveValuesอีกค่า มีวิธีอื่นในการบรรลุเป้าหมายนี้อย่างง่ายดายหรือไม่? (ฉันสงสัยอยู่เสมอว่าทำไม std :: map ไม่รวมฟังก์ชั่นสมาชิกเพื่อให้เราทำเช่นนั้น)