#include <algorithm> // std::transform
#include <iterator> // std::back_inserter
std::transform(
your_map.begin(),
your_map.end(),
std::back_inserter(your_values_vector),
[](auto &kv){ return kv.second;}
);
দুঃখিত যে আমি কোনও ব্যাখ্যা যোগ করি নি - আমি ভেবেছিলাম যে কোডটি এত সহজ যে কোনও ব্যাখ্যা প্রয়োজন হয় না। সুতরাং:
transform( beginInputRange, endInputRange, outputIterator, unaryOperation)
এই ফাংশনটি রেঞ্জ ( - ) unaryOperation
থেকে প্রতিটি আইটেমে কল করে । অপারেশন এর মান সংরক্ষণ করা হয় ।inputIterator
beginInputRange
endInputRange
outputIterator
আমরা যদি পুরো মানচিত্রের মাধ্যমে পরিচালনা করতে চাই - আমরা আমাদের ইনপুট পরিসর হিসাবে map.begin () এবং map.end () ব্যবহার করি। আমরা ভেক্টর মধ্যে আমাদের মানচিত্র মান সঞ্চয় করতে চান - তাই আমরা আমাদের ভেক্টর উপর back_inserter ব্যবহার করতে হবে: back_inserter(your_values_vector)
। ব্যাক_ইনসেটর হল একটি বিশেষ আউটপুটআইট্রেটর যা প্রদত্ত (প্যারামিটার হিসাবে) সংগ্রহের শেষে নতুন উপাদানগুলিকে ঠেলে দেয়। শেষ প্যারামিটারটি অযৌক্তিকরণ - এটি কেবল একটি প্যারামিটার নেয় - ইনপুটআইট্রেটারের মান। সুতরাং আমরা ল্যাম্বদা ব্যবহার করতে পারি:
[](auto &kv) { [...] }
যেখানে & কেভি হ'ল মানচিত্রের আইটেমের জোড়ার উল্লেখ। সুতরাং আমরা যদি মানচিত্রের আইটেমগুলির কেবলমাত্র মানগুলি ফিরিয়ে দিতে চাই তবে আমরা কেবল কেভি.সেকেন্ডটি ফিরিয়ে দিতে পারি:
[](auto &kv) { return kv.second; }
আমি মনে করি এটি কোনও সন্দেহের ব্যাখ্যা দেয়।