() লুপগুলির জন্য সি ++ 11 রেঞ্জ-ভিত্তিকের সাধারণ উদাহরণ হ'ল সর্বদা সহজ কিছু:
std::vector<int> numbers = { 1, 2, 3, 4, 5, 6, 7 };
for ( auto xyz : numbers )
{
std::cout << xyz << std::endl;
}
কোন ক্ষেত্রে xyzএকটি int। কিন্তু, যখন আমাদের মানচিত্রের মতো কিছু থাকে তখন কী হয়? এই উদাহরণে ভেরিয়েবলের প্রকারটি কী:
std::map< foo, bar > testing = { /*...blah...*/ };
for ( auto abc : testing )
{
std::cout << abc << std::endl; // ? should this give a foo? a bar?
std::cout << abc->first << std::endl; // ? or is abc an iterator?
}
যখন ধারকটি ট্র্যাভার করা হচ্ছে তখন সাধারণ কিছু যখন লাগে তখন মনে হয় () লুপের জন্য পরিসর-ভিত্তিক আমাদের প্রতিটি আইটেম দেবে, কোনও পুনরুক্তিকারী নয়। যা দুর্দান্ত ... যদি তা পুনরুক্তি করা হয়, প্রথম জিনিসটি আমাদের সর্বদা করতে হবে তা হ'ল যাই হোক না কেন এটি ডিফারেন্স করা।
মানচিত্র এবং মাল্টিম্যাপের মতো জিনিসগুলি যখন আসে তখন আমি কী আশা করব তা নিয়ে আমি বিভ্রান্ত।
(আমি এখনও জি ++ ৪.৪ এ রয়েছি, যদিও পরিসীমা-ভিত্তিক লুপগুলি জি ++ ৪.+++ এ রয়েছে, সুতরাং এখনও এটি চেষ্টা করার সুযোগ পাইনি have)
std::beginএবংstd::endফাংশন বা সদস্য ফাংশন সহ একটি অপরিষ্কার নাচ করে ।