यह उन संभावित तरीकों में से एक है जो मैं बाहर आता हूं:
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"));
बेशक, हम एक अन्य फ़ंक्शनल रिट्रीवेव्यूल्स को परिभाषित करके मानचित्र से सभी मूल्यों को पुनः प्राप्त कर सकते हैं ।
क्या इसे आसानी से हासिल करने का कोई और तरीका है? (मैं हमेशा सोच रहा हूं कि std :: मैप में हमारे लिए ऐसा करने के लिए कोई सदस्य फ़ंक्शन शामिल नहीं है।)
keys.reserve(m.size());
।