template <typename T, typename Key>
bool key_exists(const T& container, const Key& key)
{
return (container.find(key) != std::end(container));
}
অবশ্যই আপনি যদি ফ্যানসিয়ার পেতে চান তবে আপনি সর্বদা একটি ফাংশন টেমপ্লেট করতে পারেন যা একটি ফাংশন এবং একটি পাওয়া না পাওয়া ফাংশনও গ্রহণ করেছিল, এরকম কিছু:
template <typename T, typename Key, typename FoundFunction, typename NotFoundFunction>
void find_and_execute(const T& container, const Key& key, FoundFunction found_function, NotFoundFunction not_found_function)
{
auto& it = container.find(key);
if (it != std::end(container))
{
found_function(key, it->second);
}
else
{
not_found_function(key);
}
}
এবং এটি এর মতো ব্যবহার করুন:
std::map<int, int> some_map;
find_and_execute(some_map, 1,
[](int key, int value){ std::cout << "key " << key << " found, value: " << value << std::endl; },
[](int key){ std::cout << "key " << key << " not found" << std::endl; });
এর নেতিবাচক দিকটি একটি ভাল নাম নিয়ে আসছে, "সন্ধান_আর_একসিকিউট" বিশ্রী এবং আমি আমার মাথার উপরের দিক থেকে আরও ভাল কিছু নিয়ে আসতে পারি না ...
std::pair<iterator,bool> insert( const value_type& value );
এটি ফিরে আসে কি বুল? এটি কি বলে, কীটি যদি ইতিমধ্যে উপস্থিত থাকে বা না থাকে?