মধ্যে পার্থক্য কি std::stringএবং std::basic_string? এবং কেন উভয় প্রয়োজন?
উত্তর:
std::basic_stringচরিত্র ধরনের আউট স্ট্রিং তৈরীর জন্য একটি শ্রেণী টেমপ্লেট হয় std::stringএকটি হল typedefযে বর্গ টেম্পলেটের একটি বিশেষজ্ঞতা জন্য char। হ্যাঁ এগুলি উভয়ই প্রয়োজনীয় (বা কমপক্ষে মানক দ্বারা প্রয়োজনীয়)।
std::stringএটি একটি তাত্ক্ষণিক std::basic_string<T>:
typedef std::basic_string<char> string
std::basic_stringসকল ধরণের স্ট্রিংয়ের জন্য একই ধরণের ইন্টারফেস থাকা প্রয়োজন ( wstringউদাহরণস্বরূপ)।
stringএকটি হল বিশেষজ্ঞতা এর basic_string।
namespace std { typedef basic_string<char> string; }প্রযুক্তিগতভাবে এটি কোনও ইনস্ট্যান্টেশন নয়, তবে এটি কমপক্ষে নিকটবর্তী (ইনস্ট্যান্টেশন, সংজ্ঞা অনুসারে, একটি উদাহরণ তৈরি করে, এবং টাইপডেফ কেবল একটি নাম তৈরি করে, উদাহরণ নয়) )।
এ std::stringহ'ল std::basic_stringএক ধরণের টেম্পলেটটির ইনস্ট্যান্টেশন char। আপনার উভয়ের প্রয়োজন যাতে আপনি পাশাপাশি বিভিন্ন স্ট্রিং তৈরি করতে পারেন char, যেমন একটি std::basic_string<wchar_t>বিস্তৃত অক্ষরের একটি স্ট্রিংয়ের জন্য। অথবা আপনি যদি 32 বিট উপাদানগুলির সাথে একটি স্ট্রিং চান std::basic_string<unsigned int>,।
std::basic_stringকোনও charপ্রকার ছাড়াই তাত্ক্ষণিকভাবে চলবেন না তার একটি ব্যবহারের কেস সরবরাহ করে ।