دسترسی نامحدود
برای کاربرانی که ثبت نام کرده اند
برای ارتباط با ما می توانید از طریق شماره موبایل زیر از طریق تماس و پیامک با ما در ارتباط باشید
در صورت عدم پاسخ گویی از طریق پیامک با پشتیبان در ارتباط باشید
برای کاربرانی که ثبت نام کرده اند
درصورت عدم همخوانی توضیحات با کتاب
از ساعت 7 صبح تا 10 شب
ویرایش:
نویسندگان: Eric S. Roberts
سری: 计算机科学丛书
ISBN (شابک) : 7111546962, 9787111546962
ناشر: 机械工业出版社
سال نشر:
تعداد صفحات: 659
زبان: Chinese
فرمت فایل : PDF (درصورت درخواست کاربر به PDF، EPUB یا AZW3 تبدیل می شود)
حجم فایل: 127 مگابایت
در صورت تبدیل فایل کتاب C++程序设计: 基础、编程抽象与算法策略 به فرمت های PDF، EPUB، AZW3، MOBI و یا DJVU می توانید به پشتیبان اطلاع دهید تا فایل مورد نظر را تبدیل نمایند.
توجه داشته باشید کتاب C++程序设计: 基础、编程抽象与算法策略 نسخه زبان اصلی می باشد و کتاب ترجمه شده به فارسی نمی باشد. وبسایت اینترنشنال لایبرری ارائه دهنده کتاب های زبان اصلی می باشد و هیچ گونه کتاب ترجمه شده یا نوشته شده به فارسی را ارائه نمی دهد.
نشانک بارگیری شد،\nبرای نحوه ایجاد نشانک، لطفاً با yjyouaremysunshine@163.com تماس بگیرید\nکاملا رایگان\n\nروکش\nعنوان کتاب\nکپی رایت\nپیشگفتار\nفهرست مطالب\nفصل 1 مروری بر C++\n1.1 اولین برنامه C++ شما\n1.2 تاریخچه C++\n1.2.1 پارادایم شی گرا\n1.2.2 تکامل C++\n1.3 فرآیند تدوین\n1.4 ساختار برنامه ++C\n1.4.1 یادداشت ها\n1.4.2 فایل های کتابخانه گنجانده شده است\n1.4.3 نمونه اولیه تابع\n1.4.4 برنامه اصلی\n1.4.5 تعریف تابع\n1.5 متغیرها\n1.5.1 اعلام متغیر\n1.5.2 قوانین نامگذاری\n1.5.3 متغیرهای محلی و متغیرهای سراسری\n1.5.4 ثابت\n1.6 انواع داده ها\n1.6.1 مفهوم انواع داده\n1.6.2 انواع عدد صحیح\n1.6.3 انواع ممیز شناور\n1.6.4 نوع بولی\n1.6.5 شخصیت ها\n1.6.6 رشته ها\n1.6.7 انواع برشمرده شده\n1.6.8 انواع کامپوزیت\n1.7 عبارات\n1.7.1 اولویت و همراهی\n1.7.2 انواع مخلوط در عبارات\n1.7.3 عملگرهای تقسیم عدد صحیح و باقیمانده\n1.7.4 تبدیل نوع\n1.7.5 اپراتورهای واگذاری\n1.7.6 عملگرهای افزایش و کاهش\n1.7.7 عملیات بولی\n1.8 اظهارات\n1.8.1 بیانیه های ساده\n1.8.2 بلوک\n1.8.3 بیانیه if\nبیانیه سوئیچ 1.8.4\n1.8.5 بیانیه while\n1.8.6 برای بیانیه\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 2 توابع و کتابخانه ها\n2.1 مفهوم تابع\n2.1.1 توابع در ریاضیات\n2.1.2 توابع در برنامه نویسی\n2.1.3 مزایای استفاده از توابع\n2.1.4 توابع و الگوریتم ها\n2.2 کتابخانه ها\n2.3 تعریف توابع در C++\n2.3.1 نمونه اولیه عملکرد\n2.3.2 اضافه بار\n2.3.3 پارامترهای شکل پیش فرض\n2.4 مکانیسم فراخوانی عملکرد\n2.4.1 مراحل فراخوانی تابع\n2.4.2 توابع ترکیبی\n2.4.3 پیگیری فرآیند اجرای توابع مرکب\n2.5 پارامترهای مرجع\n2.6 رابط و پیاده سازی\n2.6.1 کتابخانه خطا را تعریف کنید\n2.6.2 صادرات انواع داده ها\n2.6.3 تعریف ثابت صادرات\n2.7 اصول طراحی رابط\n2.7.1 اهمیت موضوع واحد\n2.7.2 اصول ساده و پنهان کردن اطلاعات\n2.7.3 برآوردن نیازهای کاربر\n2.7.4 مزایای ابزارهای عمومی\n2.7.5 ارزش ثبات کتابخانه\n2.8 طراحی کتابخانه اعداد تصادفی\n2.8.1 اعداد تصادفی و اعداد شبه تصادفی\n2.8.2 اعداد شبه تصادفی در کتابخانه استاندارد\n2.8.3 انتخاب مجموعه عملکرد مناسب\n2.8.4 ساخت برنامه کاربر\n2.8.5 تحقق کتابخانه اعداد تصادفی\n2.8.6 دانه اعداد تصادفی را راه اندازی کنید\n2.9 معرفی کتابخانه کلاس استنفورد\n2.9.1 کتابخانه کلاس ورودی و خروجی ساده\n2.9.2 هندلرهای گرافیک در کتابخانه کلاس استنفورد\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 3 کلاس رشته\n3.1 استفاده از رشته ها به عنوان داده انتزاعی\n3.2 دستکاری رشته\n3.2.1 بارگذاری بیش از حد اپراتور\n3.2.2 انتخاب کاراکترها از یک رشته\n3.2.3 انتساب رشته\n3.2.4 رشته فرعی را در رشته استخراج کنید\n3.2.5 جستجو در یک رشته\n3.2.6 همه کاراکترهای یک رشته را حلقه کنید\n3.2.7 گسترش رشته ها توسط الحاق\n3.3 کتابخانه \n3.4 محتوای رشته را تغییر دهید\n3.5 رشته های قدیمی به سبک C\n3.6 نوشتن برنامه های رشته\n3.6.1 تشخیص پالیندروم\n3.6.2 ترجمه انگلیسی به زبان بومی کودکان\nکتابخانه strlib.h 3.7\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 4 کلاس های جریان\n4.1 خروجی فرمت شده\n4.2 ورودی فرمت شده\n4.3 فایل های داده\n4.3.1 استفاده از جریان فایل\n4.3.2 ورودی/خروجی تک نویسه\n4.3.3 ورودی/خروجی خط گرا\n4.3.4 فرمت I/O\n4.3.5 جریان های رشته ای\n4.3.6 استراتژی قوی تر برای ورودی کنسول\n4.4 سلسله مراتب طبقاتی\n4.4.1 سطح بیولوژیکی\n4.4.2 سلسله مراتب کلاس جریان\n4.4.3 انتخاب سطح صحیح در سلسله مراتب جریان\n4.5 کتابخانه simpio.h و filelib.h\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 5 مجموعه ها\n5.1 کلاس برداری\n5.1.1 نوع پایه Vector را مشخص کنید\n5.1.2 شی Vector را اعلام کنید\n5.1.3 عملیات بردار\n5.1.4 انتخاب عناصر از یک شی Vector\n5.1.5 ارسال اشیاء برداری به عنوان پارامتر\n5.1.6 یک بردار با اندازه از پیش تعریف شده ایجاد کنید\n5.1.7 سازنده کلاس Vector\n5.1.8 عملگرها در بردار\n5.1.9 نمایش سازه های دو بعدی\n5.1.10 کلاس Grid در کتابخانه کلاس استنفورد\n5.2 کلاس پشته\n5.2.1 ساختار کلاس پشته\n5.2.2 پشته ها و ماشین حساب های کوچک\n5.3 کلاس صف\n5.3.1 شبیه سازی و مدل ها\n5.3.2 مدل صف\n5.3.3 زمان گسسته\n5.3.4 رویدادها در زمان شبیه سازی\n5.3.5 پیاده سازی شبیه سازی\n5.4 کلاس نقشه\n5.4.1 ساختار کلاس Map\n5.4.2 استفاده از کلاس Map در یک برنامه\n5.4.3 کلاس Map به عنوان یک آرایه انجمنی\n5.5 کلاس تنظیم کنید\n5.5.1 پیاده سازی کتابخانه \n5.5.2 ایجاد فهرست کلمات\n5.5.3 کلاس Lexicon در کتابخانه کلاس استنفورد\n5.6 تکرار روی مجموعه ها\n5.6.1 ترتیب تکرار\n5.6.2 بازبینی زبان عامیانه کودکان\n5.6.3 شمارش فراوانی کلمات\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 6 طراحی کلاس\n6.1 نمایش نقاط دو بعدی\n6.1.1 تعریف نقطه به عنوان یک نوع ساختار\n6.1.2 تعریف Point به عنوان یک کلاس\n6.1.3 جداسازی رابط و پیاده سازی\n6.2 اضافه بار اپراتور\n6.2.1 بارگذاری بیش از حد اپراتور درج\n6.2.2 مساوی بودن دو نقطه را تعیین کنید\n6.2.3 افزودن عملگرها به نوع Direction\n6.3 اعداد گویا\n6.3.1 مکانیسم برای تعریف کلاس های جدید\n6.3.2 پذیرش دیدگاه کاربر\n6.3.3 متغیرهای نمونه خصوصی کلاس Rational را تعیین کنید\n6.3.4 تعریف سازنده برای کلاس های گویا\n6.3.5 تعریف روش برای کلاس های گویا\n6.3.6 اجرای کلاس Rational\n6.4 طراحی کلاس اسکنر توکن\n6.4.1 آنچه کاربران از اسکنر توکن می خواهند\nرابط 6.4.2 tokenscanner.h\n6.4.3 کلاس TokenScanner را پیاده سازی کنید\n6.5 کپسوله کردن برنامه ها در کلاس ها\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 7 مقدمه ای بر بازگشت\n7.1 یک مثال بازگشتی ساده\n7.2 تابع فاکتوریل\n7.2.1 فرمول بازگشتی واقعیت\n7.2.2 ردیابی فرآیند بازگشتی\n7.2.3 پرش های ثابت در بازگشت\n7.3 تابع فیبوناچی\n7.3.1 محاسبه اقلام دنباله فیبوناچی\n7.3.2 کسب اطمینان در پیاده سازی های بازگشتی\n7.3.3 کارایی اجرای بازگشتی\n7.3.4 بازگشت مقصر نیست\n7.4 تشخیص پالیندروم ها\n7.5 الگوریتم جستجوی باینری\n7.6 بازگشت غیر مستقیم\n7.7 تفکر بازگشتی\n7.7.1 حفظ دیدگاه کل نگر\n7.7.2 از اشتباهات رایج اجتناب کنید\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 8 استراتژی های بازگشتی\n8.1 برج هانوی\n8.1.1 چارچوب سوال\n8.1.2 یافتن یک استراتژی بازگشتی\n8.1.3 اعتبار سیاست\n8.1.4 طرح رمزگذاری\n8.1.5 ردیابی فرآیند بازگشتی\n8.2 مسئله جمع زیر مجموعه\n8.2.1 یافتن راه حل بازگشتی\n8.2.2 شامل / حذف الگوها\n8.3 چینش شخصیت\n8.4 بازگشت در نمودارها\n8.4.1 نمونه ای از هنر کامپیوتری\n8.4.2 فراکتال ها\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 9 الگوریتم های عقب نشینی\n9.1 بازگشت بازگشتی در مازها\n9.1.1 قانون دست راست\n9.1.2 یافتن یک روش بازگشتی\n9.1.3 تعیین حالت ساده\n9.1.4 کدگذاری الگوریتم حل مسئله ماز\n9.1.5 خود را متقاعد کنید که راه حل موثر است\n9.2 عقب نشینی و بازی ها\n9.2.1 ناپا\n9.2.2 یک برنامه بازی دو نفره عمومی\n9.3 الگوریتم Min-Max\n9.3.1 درخت بازی\n9.3.2 ارزیابی موقعیت ها و حرکت ها\n9.3.3 محدود کردن عمق جستجوهای بازگشتی\n9.3.4 پیاده سازی الگوریتم min-max\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 10 تجزیه و تحلیل الگوریتم\n10.1 مشکلات مرتب سازی\n10.1.1 الگوریتم مرتب سازی انتخاب\n10.1.2 ارزیابی تجربی عملکرد\n10.1.3 تجزیه و تحلیل عملکرد الگوریتم مرتب سازی انتخاب\n10.2 پیچیدگی زمانی\n10.2.1 نماد O بزرگ\n10.2.2 ساده سازی استاندارد Big O\n10.2.3 پیچیدگی زمانی الگوریتم مرتب سازی انتخاب\n10.2.4 کاهش پیچیدگی زمانی از کد\n10.2.5 پیچیدگی های بدترین و متوسط\n10.2.6 تعریف رسمی نماد O Big\n10.3 ختم بازگشت\n10.3.1 نقش استراتژی تفرقه بینداز و حکومت کن\n10.3.2 ادغام دو بردار\n10.3.3 الگوریتم مرتب سازی ادغام\n10.3.4 پیچیدگی محاسباتی مرتب سازی ادغام\n10.3.5 مقایسه عملکرد N2 و Nlog2N\n10.4 کلاس های پیچیدگی الگوریتمی استاندارد\n10.5 الگوریتم مرتب سازی سریع\n10.5.1 تقسیم بردارها\n10.5.2 تجزیه و تحلیل عملکرد الگوریتم مرتب سازی سریع\n10.6 استقراء ریاضی\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 11 اشاره گرها و آرایه ها\n11.1 ساختار حافظه\n11.1.1 بیت ها، بایت ها و کلمات\n11.1.2 نمایش باینری و هگزادسیمال\n11.1.3 ارائه انواع داده های دیگر\n11.1.4 آدرس حافظه\n11.1.5 تخصیص حافظه برای متغیرها\n11.2 اشاره گر\n11.2.1 تلقی آدرس ها به عنوان شماره\n11.2.2 اعلان متغیرهای اشاره گر\n11.2.3 محاسبات پایه اشاره گر\n11.2.4 اشاره گر به سازه ها و اشیاء\n11.2.5 کلمه کلیدی this\n11.2.6 نشانگر ویژه NULL\n11.2.7 اشاره گر و تماس با مرجع\n11.3 آرایه ها\n11.3.1 اعلان آرایه ها\n11.3.2 انتخاب عناصر آرایه\n11.3.3 مقداردهی اولیه آرایه ها استاتیک\n11.3.4 ظرفیت موثر و تخصیص یافته\n11.3.5 رابطه بین اشاره گرها و آرایه ها\n11.4 محاسبات اشاره گر\n11.4.1 شاخص های آرایه و آدرس های حافظه\n11.4.2 عملیات افزایش و کاهش اشاره گر\n11.4.3 رشته های سبک C\n11.4.4 محاسبات اشاره گر و سبک برنامه نویسی\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 12 مدیریت حافظه پویا\n12.1 تخصیص پویا و پشته\n12.1.1 اپراتور جدید\n12.1.2 آرایه های پویا\n12.1.3 اشیاء پویا\n12.2 لیست های مرتبط\n12.2.1 فانوس دریایی گوندور\n12.2.2 تکرار در لیست های پیوندی\n12.2.3 بازگشت و لیست ها\n12.3 آزاد کردن حافظه\n12.3.1 حذف اپراتور\n12.3.2 استراتژی حافظه آزاد\n12.3.3 تخریب کننده ها\n12.4 کلاس CharStack را تعریف کنید\nرابط 12.4.1 charstack.h\n12.4.2 انتخاب نمایش پشته کاراکتر\n12.5 نمودار پشته پشته\n12.6 تست واحد\n12.7 کپی کردن اشیا\n12.7.1 کپی های عمیق و کم عمق\n12.7.2 تخصیص و کپی سازنده\n12.8 استفاده از کلمه کلیدی const\n12.8.1 تعریف ثابت\n12.8.2 تماس با مرجع ثابت\nروش های 12.8.3 const\n12.9 کارایی کلاس CharStack\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 13 کارایی و نمایندگی\n13.1 حالت نرم افزار برای ویرایش متن\n13.2 طراحی یک ویرایشگر متن ساده\n13.2.1 دستورات ویرایشگر\n13.2.2 رابط عمومی کلاس EditorBuffer\n13.2.3 انتخاب یک نمایندگی اساسی\n13.2.4 نوشتن کد برنامه ویرایشگر\n13.3 پیاده سازی کلاس های مبتنی بر آرایه\n13.3.1 تعریف ساختارهای داده خصوصی\n13.3.2 اجرای عملیات بافر\n13.3.3 پیچیدگی زمانی ویرایشگرهای مبتنی بر آرایه\n13.4 پیاده سازی کلاس مبتنی بر پشته\n13.4.1 تعریف ساختارهای داده خصوصی\n13.4.2 اجرای عملیات بافر\n13.4.3 مقایسه پیچیدگی زمانی\n13.5 پیاده سازی کلاس های مبتنی بر لیست\n13.5.1 عملیات درج بافر لیست پیوندی\n13.5.2 حذف عملیات بافر لیست پیوندی\n13.5.3 حرکت مکان نما در علامت گذاری لیست پیوندی\n13.5.4 بهبود در اجرای بافر\n13.5.5 پیچیدگی زمانی بافرهای مبتنی بر فهرست\n13.5.6 لیست پیوندی دوگانه\n13.5.7 مبادلات فضا-زمان\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 14 سازه های خطی\n14.1 الگوها\n14.2 پیاده سازی پشته\n14.2.1 پیاده سازی پشته با استفاده از آرایه پویا\n14.2.2 پیاده سازی یک پشته با استفاده از یک لیست پیوندی\n14.3 اجرای صف\n14.3.1 اجرای صف مبتنی بر آرایه\n14.3.2 نمایش لیست پیوندی صف ها\n14.4 پیاده سازی کلاس برداری\n14.5 یکپارچه سازی نمونه های اولیه و کد\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 15 نقشه برداری\n15.1 نقشه برداری با استفاده از بردارها\n15.2 جداول جستجو\n15.3 هش کردن\n15.3.1 طراحی ساختارهای داده\n15.3.2 تعریف توابع هش برای رشته ها\n15.3.3 پیاده سازی جدول هش\n15.3.4 پیگیری اجرای جدول هش\n15.3.5 تنظیم تعداد سطل ها\n15.4 پیاده سازی کلاس HashMap\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 16 درختان\n16.1 شجره نامه\n16.1.1 اصطلاحات مورد استفاده برای توصیف درختان\n16.1.2 خواص بازگشتی درختان\n16.1.3 نشان دادن درختان خانواده در C++\n16.2 درختان جستجوی دودویی\n16.2.1 انگیزه استفاده از درختان جستجوی دودویی\n16.2.2 یافتن گره ها در درخت جستجوی باینری\n16.2.3 درج یک گره جدید در درخت جستجوی باینری\n16.2.4 حذف گره\n16.2.5 پیمایش درخت\n16.3 درختان متعادل\n16.3.1 استراتژی درخت متعادل\n16.3.2 الگوریتم ویژوال AVL\n16.3.3 تک چرخش\n16.3.4 چرخش دوگانه\n16.3.5 پیاده سازی الگوریتم AVL\n16.4 نقشه برداری با استفاده از BST\n16.5 ترتیبی جزئی\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nمجموعه فصل 17\n17.1 مجموعه ها به عنوان یک انتزاع ریاضی\n17.1.1 وابستگی\n17.1.2 عملیات را تنظیم کنید\n17.1.3 تعیین هویت\n17.2 برنامه های افزودنی برای رابط های مجموعه\n17.3 استراتژی های پیاده سازی برای مجموعه ها\n17.4 بهینه سازی مجموعه اعداد صحیح کوچک\n17.4.1 بردارهای ویژه\n17.4.2 آرایه های بیتی بسته بندی شده\n17.4.3 عملگرهای بیتی\n17.4.4 پیاده سازی بردارهای ویژه\n17.4.5 اجرای عملیات مجموعه پیشرفته\n17.4.6 تخصص الگو\n17.4.7 استفاده از یک پیاده سازی ترکیبی\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 18 شکل ها\n18.1 ساختار نمودارها\n18.1.1 نمودارهای جهت دار و بدون جهت\n18.1.2 مسیرها و حلقه ها\n18.1.3 اتصال\n18.2 استراتژی های نمایندگی\n18.2.1 نشان دادن روابط پیوستن با استفاده از فهرست های مجاورت\n18.2.2 نمایش اتصالات با استفاده از ماتریس مجاورت\n18.2.3 نمایش روابط به صورت مجموعه ای از کمان ها\n18.3 انتزاع نمودار سطح پایین\n18.4 پیمایش نمودار\n18.4.1 جستجوی عمقی\n18.4.2 جستجوی اول\n18.5 تعریف کلاس های گراف\n18.5.1 نمایش گراف ها، گره ها و کمان ها با کلاس ها\n18.5.2 پیاده سازی نمودارها با کلاس های پارامتری شده\n18.6 یافتن کوتاه ترین مسیر\n18.7 الگوریتم های جستجو در وب\n18.7.1 الگوریتم رتبه بندی صفحات گوگل\n18.7.2 یک مثال ساده از الگوریتم رتبه صفحه\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 19 ارث\n19.1 وراثت ساده\n19.1.1 تعیین انواع در کلاس های قالب\n19.1.2 تعریف کلاس Employee\n19.1.3 محدودیت های زیر کلاس ها در C++\n19.2 سلسله مراتب ارثی اشیاء گرافیکی\n19.2.1 فراخوانی سازنده superclass\n19.2.2 ذخیره نشانگرهای کلاس GObject در یک بردار\n19.3 سلسله مراتب کلاس برای عبارات\n19.3.1 رسیدگی به استثنا\n19.3.2 ساختار بیان\n19.3.3 تعریف بازگشتی عبارات\n19.3.4 ابهام\n19.3.5 درختان بیان\nرابط 19.3.6 exp.h\n19.3.7 نمایش زیر کلاس های بیان\n19.3.8 نمودارهای بیان\n19.3.9 اجرای روش ها\n19.4 تجزیه عبارات\n19.4.1 تجزیه و گرامر بیانیه\n19.4.2 در نظر گرفتن اولویت عملیات\n19.4.3 تجزیه کننده نزولی بازگشتی\n19.5 ارث چندگانه\n19.5.1 وراثت چندگانه در کتابخانه جریان\n19.5.2 افزودن کلاس GFillable به سلسله مراتب ارث بری GObject\n19.5.3 خطرات وراثت چندگانه\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفصل 20 استراتژی های تکرار\n20.1 استفاده از تکرار کننده ها\n20.1.1 مثال تکرار کننده ساده\n20.1.2 Iterator Hierarchy\n20.2 استفاده از توابع به عنوان مقادیر داده\n20.2.1 نشانگرهای تابع\n20.2.2 برنامه طراحی ساده\n20.2.3 اعلان نشانگرهای تابع\n20.2.4 اجرای تابع نمودار\n20.2.5 توابع نقشه برداری\n20.2.6 پیاده سازی تابع نقشه برداری\n20.2.7 محدودیت در عملکردهای برگشت به تماس\n20.3 کپسوله کردن داده ها با توابع\n20.3.1 شبیه سازی بسته شدن با اشیا\n20.3.2 یک مثال ساده از اشیاء تابع\n20.3.3 انتقال اشیاء تابع به توابع نگاشت\n20.3.4 نوشتن توابعی که توابع را به عنوان آرگومان می گیرند\nکتابخانه الگوریتم STL 20.4\n20.5 برنامه نویسی کاربردی در C++\n20.5.1 رابط کتابخانه STL <�عملکردی>\n20.5.2 توابع مقایسه\n20.6 اجرای تکرار کننده ها\n20.6.1 پیاده سازی Iterators برای کلاس های برداری\n20.6.2 استفاده از اشاره گر به عنوان تکرار کننده\n20.6.3 کلمه کلیدی typedef\n20.6.4 پیاده سازی تکرار کننده برای سایر کلاس های مجموعه\nخلاصه ی فصل\nبررسی سوالات\nتمرینات\nفهرست مطالب
书签已装载, 书签制作方法请找 yjyouaremysunshine@163.com 完全免费 封面 书名 版权 前言 目录 第1章 C++概述 1.1 你的第一个C++程序 1.2 C++的历史 1.2.1 面向对象范型 1.2.2 C++的演化 1.3 编译过程 1.4 C++程序结构 1.4.1 注释 1.4.2 包含的库文件 1.4.3 函数原型 1.4.4 主程序 1.4.5 函数定义 1.5 变量 1.5.1 变量声明 1.5.2 命名规则 1.5.3 局部变量和全局变量 1.5.4 常量 1.6 数据类型 1.6.1 数据类型的概念 1.6.2 整数类型 1.6.3 浮点类型 1.6.4 布尔类型 1.6.5 字符 1.6.6 字符串 1.6.7 枚举类型 1.6.8 复合类型 1.7 表达式 1.7.1 优先级和结合律 1.7.2 表达式中的混合类型 1.7.3 整数除法和求余操作符 1.7.4 类型转换 1.7.5 赋值操作符 1.7.6 自增和自减操作符 1.7.7 布尔运算 1.8 语句 1.8.1 简单语句 1.8.2 块 1.8.3 if语句 1.8.4 switch语句 1.8.5 while语句 1.8.6 for语句 本章小结 复习题 习题 第2章 函数与库 2.1 函数概念 2.1.1 数学中的函数 2.1.2 编程中的函数 2.1.3 使用函数的优点 2.1.4 函数和算法 2.2 库 2.3 在C++中定义函数 2.3.1 函数原型 2.3.2 重载 2.3.3 默认形参数 2.4 函数调用机制 2.4.1 函数调用步骤 2.4.2 组合函数 2.4.3 追踪组合函数执行过程 2.5 引用参数 2.6 接口与实现 2.6.1 定义error库 2.6.2 导出数据类型 2.6.3 导出常量定义 2.7 接口设计原则 2.7.1 统一主题的重要性 2.7.2 简单性与信息隐藏原理 2.7.3 满足用户需求 2.7.4 通用工具的优势 2.7.5 库稳定性的价值 2.8 随机数库的设计 2.8.1 随机数与伪随机数 2.8.2 标准库中的伪随机数 2.8.3 选择正确的函数集 2.8.4 构建用户程序 2.8.5 随机数库的实现 2.8.6 初始化随机数种子 2.9 Stanford类库介绍 2.9.1 简单的输入和输出类库 2.9.2 Stanford类库中的图形处理程序 本章小结 复习题 习题 第3章 字符串类string 3.1 使用字符串作为抽象数据 3.2 字符串操作 3.2.1 操作符重载 3.2.2 从一个字符串中选取字符 3.2.3 字符串赋值 3.2.4 提取字符串中的子串 3.2.5 在一个字符串中进行搜索 3.2.6 循环遍历字符串中的所有字符 3.2.7 通过连接扩展字符串 3.3 <cctype>库 3.4 修改字符串中的内容 3.5 遗留的C风格字符串 3.6 编写字符串应用程序 3.6.1 回文识别 3.6.2 将英语翻译成儿童黑话 3.7 strlib.h库 本章小结 复习题 习题 第4章 流类 4.1 格式化输出 4.2 格式化输入 4.3 数据文件 4.3.1 使用文件流 4.3.2 单个字符的输入/输出 4.3.3 面向行的输入/输出 4.3.4 格式化输入/输出 4.3.5 字符串流 4.3.6 一个用于控制台输入的更鲁棒的策略 4.4 类层次 4.4.1 生物层次 4.4.2 流类层次 4.4.3 在流层次中选择正确的层次 4.5 simpio.h和filelib.h库 本章小结 复习题 习题 第5章 集合类 5.1 Vector类 5.1.1 指定Vector的基类型 5.1.2 声明Vector对象 5.1.3 Vector的操作 5.1.4 从Vector对象中选择元素 5.1.5 作为参数传递Vector对象 5.1.6 创建预先定义大小的Vector 5.1.7 Vector类的构造函数 5.1.8 Vector中的操作符 5.1.9 表示二维结构 5.1.10 Stanford类库中的Grid类 5.2 Stack类 5.2.1 Stack类结构 5.2.2 栈和小型计算器 5.3 Queue类 5.3.1 仿真和模型 5.3.2 排队模型 5.3.3 离散时间 5.3.4 仿真时间中的事件 5.3.5 实现仿真 5.4 Map类 5.4.1 Map类的结构 5.4.2 在一个应用中使用Map类 5.4.3 Map类作为关联数组 5.5 Set类 5.5.1 实现<cctype>库 5.5.2 创建单词列表 5.5.3 Stanford类库中的Lexicon类 5.6 在集合上进行迭代 5.6.1 迭代顺序 5.6.2 再论儿童黑话 5.6.3 计算单词的频率 本章小结 复习题 习题 第6章 类的设计 6.1 二维点的表示 6.1.1 将Point定义为结构类型 6.1.2 将Point定义为类 6.1.3 接口与实现的分离 6.2 操作符重载 6.2.1 重载插入操作符 6.2.2 判断两个点是否相等 6.2.3 为Direction类型增加操作符 6.3 有理数 6.3.1 定义新类的机制 6.3.2 采用用户的观点 6.3.3 确定Rational类的私有实例变量 6.3.4 为Rational类定义构造函数 6.3.5 为Rational类定义方法 6.3.6 实现Rational类 6.4 token扫描器类的设计 6.4.1 用户想从记号扫描器中得到什么 6.4.2 tokenscanner.h接口 6.4.3 实现TokenScanner类 6.5 将程序封装成类 本章小结 复习题 习题 第7章 递归简介 7.1 一个简单的递归例子 7.2 阶乘函数 7.2.1 fact的递归公式 7.2.2 追踪递归过程 7.2.3 递归的稳步跳跃 7.3 斐波那契函数 7.3.1 计算斐波那契数列项 7.3.2 在递归实现中获得自信 7.3.3 递归实现的效率 7.3.4 递归不应被指责 7.4 检测回文 7.5 二分查找算法 7.6 间接递归 7.7 递归地思考 7.7.1 保持全局的观点 7.7.2 避免常见的错误 本章小结 复习题 习题 第8章 递归策略 8.1 汉诺塔 8.1.1 问题框架 8.1.2 找到一种递归策略 8.1.3 验证这个策略 8.1.4 编码方案 8.1.5 跟踪递归过程 8.2 子集求和问题 8.2.1 寻找一个递归解决方案 8.2.2 包含/排除模式 8.3 字符排列 8.4 图的递归 8.4.1 一个来自计算机艺术的实例 8.4.2 分形 本章小结 复习题 习题 第9章 回溯算法 9.1 迷宫的递归回溯 9.1.1 右手法则 9.1.2 寻找一种递归方法 9.1.3 确定简单情况 9.1.4 对迷宫问题的解决算法进行编码 9.1.5 说服你自己那个方案可行 9.2 回溯与游戏 9.2.1 拿子游戏 9.2.2 一个通用的双人游戏程序 9.3 最小最大算法 9.3.1 游戏树 9.3.2 评价位置和走法 9.3.3 限制递归搜索的深度 9.3.4 实现最小最大算法 本章小结 复习题 习题 第10章 算法分析 10.1 排序问题 10.1.1 选择排序算法 10.1.2 性能的经验评估 10.1.3 分析选择排序算法的性能 10.2 时间复杂度 10.2.1 大O符号 10.2.2 大O的标准简化 10.2.3 选择排序算法的时间复杂度 10.2.4 从代码中降低时间复杂度 10.2.5 最坏情况以及平均情况下的复杂度 10.2.6 大O符号的正式定义 10.3 递归的终止 10.3.1 分治策略的作用 10.3.2 合并两个矢量 10.3.3 归并排序算法 10.3.4 归并排序的计算复杂度 10.3.5 比较N2与Nlog2N的性能 10.4 标准的算法复杂度类别 10.5 快速排序算法 10.5.1 划分矢量 10.5.2 快速排序算法的性能分析 10.6 数学归纳法 本章小结 复习题 习题 第11章 指针和数组 11.1 内存结构 11.1.1 位、字节和字 11.1.2 二进制和十六进制表示 11.1.3 表示其他数据类型 11.1.4 内存地址 11.1.5 为变量分配内存 11.2 指针 11.2.1 把地址当作数值 11.2.2 声明指针变量 11.2.3 基本的指针运算 11.2.4 指向结构和对象的指针 11.2.5 关键字this 11.2.6 特殊的指针NULL 11.2.7 指针和引用调用 11.3 数组 11.3.1 声明数组 11.3.2 数组元素的选择 11.3.3 数组的静态初始化 11.3.4 有效容量和分配容量 11.3.5 指针和数组的关系 11.4 指针运算 11.4.1 数组索引和内存地址 11.4.2 指针的自增自减运算 11.4.3 C风格字符串 11.4.4 指针运算和程序风格 本章小结 复习题 习题 第12章 动态内存管理 12.1 动态分配和堆 12.1.1 new操作符 12.1.2 动态数组 12.1.3 动态对象 12.2 链表 12.2.1 刚铎灯塔 12.2.2 链表内的迭代 12.2.3 递归和列表 12.3 释放内存 12.3.1 delete操作符 12.3.2 释放内存策略 12.3.3 析构函数 12.4 定义CharStack类 12.4.1 charstack.h接口 12.4.2 选择字符栈的表示 12.5 堆-栈图 12.6 单元测试 12.7 拷贝对象 12.7.1 深拷贝和浅拷贝 12.7.2 赋值和拷贝构造函数 12.8 关键字const的使用 12.8.1 常量定义 12.8.2 常量引用调用 12.8.3 const方法 12.9 CharStack类的效率 本章小结 复习题 习题 第13章 效率和表示 13.1 编辑文本的软件模式 13.2 设计简单的文本编辑器 13.2.1 编辑器命令 13.2.2 EditorBuffer类的公有接口 13.2.3 选择一种底层表示 13.2.4 编写编辑器应用代码 13.3 基于数组的类实现 13.3.1 定义私有数据结构 13.3.2 缓冲区操作的实现 13.3.3 基于数组的编辑器的时间复杂度 13.4 基于栈的类实现 13.4.1 定义私有数据结构 13.4.2 缓冲区操作的实现 13.4.3 时间复杂度的比较 13.5 基于列表的类实现 13.5.1 链表缓冲区的插入操作 13.5.2 链表缓冲区的删除操作 13.5.3 链表表示法中光标的移动 13.5.4 缓冲区实现的完善 13.5.5 基于链表的缓冲区的时间复杂度 13.5.6 双向链表 13.5.7 时空权衡 本章小结 复习题 习题 第14章 线性结构 14.1 模板 14.2 栈的实现 14.2.1 使用动态数组实现栈 14.2.2 使用链表实现栈 14.3 队列的实现 14.3.1 基于数组的队列实现 14.3.2 队列的链表表示 14.4 实现矢量类 14.5 集成原型和代码 本章小结 复习题 习题 第15章 映射 15.1 使用矢量实现映射 15.2 查找表 15.3 哈希 15.3.1 设计数据结构 15.3.2 为字符串定义哈希函数 15.3.3 实现哈希表 15.3.4 跟踪哈希表的实现 15.3.5 调整桶的数目 15.4 实现HashMap类 本章小结 复习题 习题 第16章 树 16.1 家谱 16.1.1 用来描述树的术语 16.1.2 树的递归特性 16.1.3 用C++语言表示家谱 16.2 二叉搜索树 16.2.1 使用二叉搜索树的动机 16.2.2 在二叉搜索树中寻找节点 16.2.3 在二叉搜索树中插入一个新节点 16.2.4 删除节点 16.2.5 树的遍历 16.3 平衡树 16.3.1 平衡树策略 16.3.2 可视化AVL算法 16.3.3 单旋转 16.3.4 双旋转 16.3.5 实现AVL算法 16.4 使用BST实现映射 16.5 偏序数 本章小结 复习题 习题 第17章 集合 17.1 集合作为一种数学抽象 17.1.1 隶属关系 17.1.2 集合运算 17.1.3 集合恒等式 17.2 集合接口的扩展 17.3 集合的实现策略 17.4 优化小整数的集合 17.4.1 特征向量 17.4.2 压缩的位数组 17.4.3 位操作符 17.4.4 实现特征向量 17.4.5 实现高级集合运算 17.4.6 模板特化 17.4.7 使用一种混合的实现 本章小结 复习题 习题 第18章 图 18.1 图的结构 18.1.1 有向图和无向图 18.1.2 路径和回路 18.1.3 连通性 18.2 表示策略 18.2.1 用邻接表表示连接关系 18.2.2 用邻接矩阵表示连接关系 18.2.3 用弧集合表示关系 18.3 一种低层的图抽象 18.4 图的遍历 18.4.1 深度优先搜索 18.4.2 广度优先搜索 18.5 定义图类 18.5.1 用类表示图、节点和弧 18.5.2 用参数化的类实现图 18.6 寻找最短路径 18.7 搜索网页的算法 18.7.1 谷歌的网页排名算法 18.7.2 网页排名算法的一个简例 本章小结 复习题 习题 第19章 继承 19.1 简单的继承 19.1.1 指定模板类中的类型 19.1.2 定义Employee类 19.1.3 C++中子类的局限性 19.2 图形对象的继承层次 19.2.1 调用父类的构造函数 19.2.2 将GObject类指针存储在矢量中 19.3 表达式的类层次 19.3.1 异常处理 19.3.2 表达式结构 19.3.3 表达式的递归定义 19.3.4 二义性 19.3.5 表达式树 19.3.6 exp.h接口 19.3.7 Expression子类的表示 19.3.8 表达式图解 19.3.9 方法的实现 19.4 解析表达式 19.4.1 语句解析和语法 19.4.2 考虑运算的优先级 19.4.3 递归下降语法分析器 19.5 多重继承 19.5.1 stream类库中的多重继承 19.5.2 在GObject继承层次中添加GFillable类 19.5.3 多重继承的危险性 本章小结 复习题 习题 第20章 迭代策略 20.1 使用迭代器 20.1.1 简单的迭代器例子 20.1.2 迭代器的层次结构 20.2 使用函数作为数据值 20.2.1 函数指针 20.2.2 简单的画图应用 20.2.3 声明函数指针 20.2.4 实现plot函数 20.2.5 映射函数 20.2.6 实现映射函数 20.2.7 回调函数的限制 20.3 用函数封装数据 20.3.1 使用对象模拟闭包 20.3.2 函数对象的简单例子 20.3.3 向映射函数传递函数对象 20.3.4 编写以函数作为参数的函数 20.4 STL算法库 20.5 C++的函数式编程 20.5.1 STL库<functional>的接口 20.5.2 比较函数 20.6 迭代器的实现 20.6.1 为矢量类实现迭代器 20.6.2 将指针作为迭代器 20.6.3 typedef关键字 20.6.4 为其他集合类实现迭代器 本章小结 复习题 习题 索引