মধ্যে পার্থক্য কি 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
প্রকার ছাড়াই তাত্ক্ষণিকভাবে চলবেন না তার একটি ব্যবহারের কেস সরবরাহ করে ।