... রেঞ্জগুলি অতিক্রম করার বিকল্পটি পাওয়া এটি অবশ্যই কার্যকর। তবে কমপক্ষে আমার অভিজ্ঞতায় এটি একটি বিরল বিশেষ ঘটনা। আমি সাধারণত পুরো পাত্রে অপারেট করতে চাই
এটি আপনার অভিজ্ঞতার মধ্যে একটি বিরল বিশেষ কেস হতে পারে তবে বাস্তবে পুরো ধারকটিই বিশেষ ক্ষেত্রে এবং স্বেচ্ছাসেবী পরিসীমাটি সাধারণ ক্ষেত্রে।
আপনি ইতিমধ্যে লক্ষ্য করেছেন যে আপনি বর্তমান ইন্টারফেসটি ব্যবহার করে পুরো কন্টেইনার কেসটি বাস্তবায়ন করতে পারেন , তবে আপনি কনভার্সটি করতে পারবেন না।
সুতরাং, গ্রন্থাগার-লেখকের সামনে দুটি ইন্টারফেস প্রয়োগ করার মধ্যে বা কেবল একটি বাস্তবায়ন যা এখনও সমস্ত ক্ষেত্রে আচ্ছাদন করে তার মধ্যে একটি পছন্দ ছিল।
একটি র্যাপার ফাংশন লিখতে সহজ যা একটি ধারক গ্রহণ করে এবং এটিতে কল শুরু () এবং শেষ () হয়, তবে এই জাতীয় সুবিধার ফাংশনগুলি স্ট্যান্ডার্ড লাইব্রেরিতে অন্তর্ভুক্ত নয়
সত্য, বিশেষত যেহেতু বিনামূল্যে ফাংশন std::begin
এবং std::end
এখন অন্তর্ভুক্ত রয়েছে।
সুতরাং, আসুন আমরা লাইব্রেরিটি সুবিধার ওভারলোড সরবরাহ করে:
template <typename Container>
void sort(Container &c) {
sort(begin(c), end(c));
}
এখন এটি তুলনামূলক ফ্যাক্টর গ্রহণ করে সমতুল্য ওভারলোড সরবরাহ করা প্রয়োজন এবং আমাদের প্রতিটি অন্যান্য অ্যালগরিদমের সমতুল্য সরবরাহ করতে হবে।
তবে আমরা কমপক্ষে প্রতিটি ক্ষেত্রেই আচ্ছাদিত করেছি যেখানে আমরা একটি সম্পূর্ণ ধারকটিতে কাজ করতে চাই, তাই না? ভাল, বেশ না। বিবেচনা
std::for_each(c.rbegin(), c.rend(), foo);
আমরা অপারেটিং হ্যান্ডেল করতে চান, পিছন পাত্রে উপর, আমরা প্রয়োজন অন্য বিদ্যমান অ্যালগরিদম প্রতি পদ্ধতি (অথবা পদ্ধতি এর একটি জোড়া)।
সুতরাং, পরিসীমা ভিত্তিক পদ্ধতির সাধারণ অর্থে আরও সাধারণ যে:
- এটি পুরো ধারক সংস্করণ যা করতে পারে তা করতে পারে
- পুরো ধারক পন্থাটি এখনও কম শক্তিশালী হয়ে ওঠা প্রয়োজনীয় ওভারলোডের সংখ্যা দ্বিগুণ বা তিনগুণ করে
- পরিসীমা ভিত্তিক অ্যালগরিদমগুলিও কমপোজযোগ্য (আপনি স্ট্যাক বা চেইন পুনরায় আবরণকারী অ্যাডাপ্টারগুলি করতে পারেন, যদিও এটি সাধারণত ফাংশনাল ভাষা এবং পাইথনে ব্যবহৃত হয়)
এর আর একটি বৈধ কারণ রয়েছে, এটি হ'ল এটি যে এসটিএলকে মানসম্পন্ন করার জন্য ইতিমধ্যে প্রচুর কাজ ছিল এবং এটি ব্যাপকভাবে ব্যবহৃত হওয়ার আগে এটি সুবিধাযুক্ত মোড়ক দিয়ে স্ফীত করা সীমিত কমিটির সময়ের দুর্দান্ত ব্যবহার হবে না। আপনি যদি আগ্রহী হন তবে আপনি এখানে স্টেপানভ এবং লির প্রযুক্তিগত প্রতিবেদনটি খুঁজে পেতে পারেন
মন্তব্যে উল্লিখিত হিসাবে, বুস্ট.রেঞ্জ স্ট্যান্ডার্ডে পরিবর্তনের প্রয়োজন ছাড়াই একটি নতুন পদ্ধতির সরবরাহ করে।