String Namespace

در C++ رشته‌ها در فضای نام (namespace) std قرار دارند. برای استفاده از کلاس std::string باید یا از پیشوند std:: استفاده کنید یا فضای نام استاندارد را با using وارد کنید.


🟠 C++ String Namespace

🔹 1. استفاده مستقیم از std::string

روش توصیه‌شده این است که نام کامل را با std:: بنویسید:

#include <iostream> #include <string> int main() { std::string text = "Hello World"; std::cout << text << std::endl; return 0; }
  • فضای نام std همه کلاس‌ها و توابع استاندارد C++ (مانند cout, cin, vector, string) را نگه می‌دارد.

  • این روش باعث می‌شود در پروژه‌های بزرگ، تداخل نام‌ها کمتر شود.

🔹 2. استفاده از ;using namespace std

اگر نمی‌خواهید قبل از هر اسم std:: بگذارید، می‌توانید از دستور زیر استفاده کنید:

#include <iostream> #include <string> using namespace std; // همه نمادهای std بدون پیشوند در دسترس‌اند int main() { string text = "Hello World"; cout << text << endl; return 0; }
  • حالا می‌توانید مستقیماً string, cout, cin و … را بدون std:: استفاده کنید.

🔹 3. استفادهٔ انتخابی (پیشنهادی‌تر در پروژه‌های بزرگ)

به جای آوردن کل فضای نام، فقط نام‌های لازم را وارد کنید:

#include <iostream> #include <string> using std::string; using std::cout; using std::endl; int main() { string msg = "Hello!"; cout << msg << endl; }
  • این روش باعث می‌شود اگر کتابخانهٔ دیگری نام مشابه داشت، با std تداخل نکند.

✅ نکات مهم

  • کلاس string در هدر <string> تعریف شده است، پس حتماً این هدر را اضافه کنید.

  • استفاده از ;using namespace std در فایل‌های هدر یا پروژه‌های بزرگ توصیه نمی‌شود، چون می‌تواند با سایر فضاهای نام تداخل ایجاد کند.

  • اگر از کتابخانه‌های دیگر که فضای نام‌های متفاوت دارند (مثل boost یا Eigen) استفاده می‌کنید، بهتر است از std:: کامل استفاده کنید.

خلاصه

روشمزایامعایب
std::stringایمن، بدون تداخل نامنوشتن طولانی‌تر
using namespace std;کوتاه‌نویسی در برنامه‌های کوچکخطر تداخل نام در پروژه‌های بزرگ
using std::string;فقط وارد کردن نمادهای موردنیاز، متعادلکمی بیشتر کدنویسی نسبت به حالت global

نتیجه: برای کار با رشته‌ها در C++ همیشه #include <string> را فراموش نکنید و برای پروژه‌های جدی از std::string یا using std::string; استفاده کنید تا مدیریت نام‌ها واضح و ایمن باشد.