رفتن به مطلب
جامعه‌ی برنامه‌نویسان مُدرن ایران

کامبیز اسدزاده

بنیـــان گذار
  • تعداد ارسال ها

    150
  • تاریخ عضویت

  • آخرین بازدید

  • روز های برد

    46

آخرین بار برد کامبیز اسدزاده در 9 مهر

کامبیز اسدزاده یکی از رکورد داران بیشترین تعداد پسند مطالب است !

اعتبار در سایت

199 عالی

2 دنبال کننده

درباره کامبیز اسدزاده

اساتید
توسعه‌ دهنده بَک اِند
توسعه‌ دهنده فرانت اِند
توسعه دهنده فول اِستَک
منتور‌ها و مشاورین
  • تاریخ تولد 12 فروردین 1368

اطلاعات شبکه‌ای

موقعیت

  • شهر
    اورمیه

آخرین بازدید کنندگان نمایه

874 بازدید کننده نمایه
  1. کامبیز اسدزاده

    نسخه‌ی بتای 4.8 منتشر شد! پشتیبانی از ویژگی‌های عمومی از ویژگی‌های جدید این نسخه می‌توان به ویژگی پشتیبانی از LSP اشاره کرد که در این نسخه به صورت آزمایشی افزوده شده است. برای فعال سازی این ویژگی کافی است به مسیر Help > About Plugins (Qt Creator > About Plugins on macOS) بروید. ویژگی‌های مربوط به ++C در سمت سی‌پلاس‌پلاس ویژگی‌های جدیدی به صورت آزمایشی اضافه شده اند. ویژگی‌های جدید با پشتیبانی از Cppcheck و اشکال زدایی‌ بهتر. دیگر بهبود‌ها‌ی اساسی در نسخه‌ی مک‌او‌اِس پوسته‌ی محیط با ویژگی‌های جدید سیستم‌عامل macOS Mojave (10.14) سازگار شده است. در اندروید نیز مشکل اتصال به API 24 حل شده است. جزئیات و دیگر بهبود‌ها: Qt Creator version 4.8 contains bug fixes and new features. The most important changes are listed in this document. For a complete list of changes, see the Git log for the Qt Creator sources that you can check out from the public Git repository. For example: git clone git://code.qt.io/qt-creator/qt-creator.git git log --cherry-pick --pretty=oneline origin/4.7..v4.8.0 General * Added `HostOs:PathListSeparator` and `HostOs:ExecutableSuffix` Qt Creator variables * Added `Create Folder` to context menu of path choosers if the path does not exist * Fixed menu items shown in menu locator filter (QTCREATORBUG-20071, QTCREATORBUG-20626) Editing * Added experimental plugin `LanguageClient` for supporting the [language server protocol](https://microsoft.github.io/language-server-protocol) (QTCREATORBUG-20284) * Added support for the pastecode.xyz code pasting service * Made it possible to change default editors in MIME type settings All Projects * Added option for parallel jobs to `make` step, which is enabled by default if `MAKEFLAGS` are not set (QTCREATORBUG-18414) * Added auto-detection of the Clang compiler shipped with Qt Creator * Added option for disabling automatic creation of run configurations (QTCREATORBUG-18578) * Added option to open terminal with build or run environment to project tree and the corresponding configuration widgets in `Projects` mode (QTCREATORBUG-19692) * Improved handling of relative file paths for custom error parsers (QTCREATORBUG-20605) * Fixed that `make` step required C++ tool chain * Fixed that many very long lines in application or build output could lead to out of memory exception (QTCREATORBUG-18172) QMake Projects * Fixed that `make qmake_all` was run in top-level project directory even when building sub-project (QTCREATORBUG-20823) Qbs Projects * Added `qmlDesignerImportPaths` property for specifying QML import paths for Qt Quick Designer (QTCREATORBUG-20810) C++ Support * Added experimental plugin `CompilationDatabaseProjectManager` that opens a [compilation database](https://clang.llvm.org/docs/JSONCompilationDatabase.html) for code editing * Added experimental plugin `ClangFormat` that bases auto-indentation on Clang Format * Added experimental plugin `Cppcheck` for integration of [cppcheck](http://cppcheck.sourceforge.net) diagnostics * Added highlighting style for punctuation tokens (QTCREATORBUG-20666) * Clang Code Model * Added `Follow Symbol` for `auto` keyword (QTCREATORBUG-17191) * Added function overloads to tooltip in completion popup * Added `Build` > `Generate Compilation Database` * Fixed that braced initialization did not provide constructor completion (QTCREATORBUG-20957) * Fixed local references for operator arguments (QTCREATORBUG-20966) QML Support * Fixed indentation in object literals with ternary operator (QTCREATORBUG-7103) * Fixed that symbols from closed projects were still shown in Locator (QTCREATORBUG-13459) Debugging * Added support for multiple simultaneous debugger runs * Fixed automatic detection of debugging information for Qt from binary installer (QTCREATORBUG-20693) * GDB * Fixed startup issue with localized debugger output (QTCREATORBUG-20765) * Fixed disassembler view for newer GCC * CDB * Added option to suppress task entries for exceptions (QTCREATORBUG-20915) * LLDB * Fixed instruction-wise stepping Qt Quick Designer * Fixed wrong property propagation from parent to child Version Control Systems * Git * Added navigation pane that shows branches * Added option for copy/move detection to `git blame` (QTCREATORBUG-20462) * Improved behavior if no merge tool is configured * Fixed that `git pull` blocked Qt Creator (QTCREATORBUG-13279) * Fixed handling of `file://` remotes (QTCREATORBUG-20618) * Fixed search for `gitk` executable (QTCREATORBUG-1577) Test Integration * Google Test * Fixed that not all failure locations were shown (QTCREATORBUG-20967) * Fixed that `GTEST_*` environment variables could break test execution and output parsing (QTCREATORBUG-21012) Model Editor * Fixed that selections and text cursors where exported (QTCREATORBUG-16689) Platform Specific Linux * Added detection of Intel C compiler (QTCREATORBUG-18302) * Fixed `Open Terminal Here` for `konsole` (QTCREATORBUG-20900) macOS * Fixed light themes for macOS Mojave (10.14) Android * Added support for command line arguments * Added support for environment variables * Fixed connecting to debugger for API level 24 and later برای دریافت این نسخه کلیک کنید.
  2. کامبیز اسدزاده

    همانطور که می‌دانید محیط توسعه‌ی یکپارچه‌ی نرم‌افزار Visual Studio به عنوان یکی از جامع‌ترین محیط‌های توسعه بسیار شناخته شده است. برنامه‌نویسان سی‌پلاس‌پلاس بسیاری از پروژه‌های خود را تحت این محیط علاوه بر آن کیوت کریتور توسعه می‌دهند. کتابخانه‌ی کیوت افزونه‌ای را برای یکپارچه سازی خود با محیط ویژوال استودیو ارائه داده است که در حالت عادی از کتابخانه‌ی Qt به خوبی پشتیبانی می‌کند و اجازه می‌دهد تا شما کُد‌های خود را که بر اساس کتابخانه‌ی کیوت هستند در محیط ویژوال استودیو توسعه و خروجی بگیرید. اما محدودیت‌هایی در این افزونه تا به امروز وجود دارد، یکی از آن‌ها عدم هماهنگی و پشتیبانی از زبان QML بر پایه جاوا اسکریپت است. در نسخه‌ی بعدی کیوت یعنی 5.12.0 افزونه‌ی Qt Visual Studio Tools, v2.3.0 نیز منتشر خواهد شد که با نسخه‌های جدید ویژوال استودیو هماهنگ و به شما امکان اینم را خواهد داد تا بتوانید کد‌های نوشته شده توسط QML و JavaScript را اشکال‌زدایی کنید. این امکان وجود خواهد داشت تا شما هر جایی که نقطه‌ی توقف برای اشکال زدایی ایجاد کرده اید را مورد تجزیه تحلیل قرار خواهید داد. از جمله، تغییر تحولات در ارزش‌های متغیر‌ها و دیگر موارد. نسخه‌ی جدید این افزونه به طور کامل با زیرساخت اشکال زدایی QML یکپارچه سازی شده است. که به عنوان بخشی از ماژول Qt QML خدماتی برای اشکال زدایی، بررسی و ثبت و ظبط برنامه را از طریق یک پور TCP فراهم می‌کند. به صورت پیش‌فرض ویژگی اشکال زدایی در QML برای ویژوال استودیو فعال است. شما می‌توانید آن را در بخش تنظیمات افزونه ویژوال استودیو برای Qt غیرفعال کنید. این ابزار را به زودی در بخش دریافت فایل‌ها می‌توانید همزمان با نسخه‌ی ۵.۱۲.۰ کیوت دریافت نمایید.
  3. کامبیز اسدزاده

    شما در محیط لینوکس، وقتی کیوت رو نصب می‌کنید برای استفاده از اون مخصوصاً ساخت (کامپایل، بیلد) و اجرای برنامه نیاز به یک سری ابزار‌ها و کتابخانه‌های پیش‌نیاز دارید که با دستورات زیر باید پکیج‌های مربوط به اون رو نصب کنید. sudo apt-get install build-essential sudo apt-get install mesa-common-dev حالا شما دستور منسوخ شده رو اجرا کردین که ظاهراً مشکلتون حل شده، دلیلش هم احتمالاً دو ابزار qt4-qmake (= 4:4.8.7+dfsg-17) و qt4-dev-tools در پکیج هستش که نسخه‌های به‌روز تر و بهترش در پکیج build-essential موجود هست.
  4. کامبیز اسدزاده

    نسخه‌ی ۴.۷.۱ کیوت کریتور انتتشار یافت. Qt Creator version 4.7.1 contains bug fixes. The most important changes are listed in this document. For a complete list of changes, see the Git log for the Qt Creator sources that you can check out from the public Git repository. For example: git clone git://code.qt.io/qt-creator/qt-creator.git git log --cherry-pick --pretty=oneline origin/v4.7.0..v4.7.1 Editing * Fixed that generic highlighting could use unreadable colors (QTCREATORBUG-20919) All Projects * Fixed jumping text cursor when editing custom executable path Qbs Projects * Fixed C++ version passed to code model (QTCREATORBUG-20909) C++ Support * Clang Code Model * Fixed include order for Clang headers Debugging * Fixed remote debugging command line argument (QTCREATORBUG-20928) * GDB * Fixed GDB built-in pretty printer handling (QTCREATORBUG-20770) * CDB * Fixed pretty printing of enums * QML * Fixed re-enabling breakpoints (QTCREATORBUG-20795) * Fixed `Attach to QML Port` (QTCREATORBUG-20168) Platform Specific Windows * Improved resource consumption of MSVC detection, which prompted some Anti-Virus software to block Qt Creator (QTCREATORBUG-20829) * Fixed that Qt Creator forced use of ANGLE on user applications (QTCREATORBUG-20808) * Fixed MSVC toolchain detection for Windows SKD 7 (QTCREATORBUG-18328) برای دریافت از این بخش اقدام کنید.
  5. کامبیز اسدزاده

    سلام، برخی از دوستان در گروه‌ برنامه‌نویسی در رابطه با نحوه‌ی بررسی وضعیت اینترنت و شبکه سوال پرسیده بودن که چطور میشه در سی++ تحت کیوت مخصوصاً همراه QML وضعیت آنلاین بودن رو در زمان واقعی بررسی کرد. من نمونه مثالی آماده کردم که در وضعیت زمان واقعی (Real-Time) هر چند ثانیه یک بار نسبت به وضعیت اینترنت واکنش نشون میده. برای دریافت این نمونه مثال از مخزن مربوطه استفاده کنید.
  6. کامبیز اسدزاده

    چرا از نوع Image در QML استفاده نمی‌کنید؟ در این صورت فقط نیاز دارین آدرس تصاویر رو بهش انتقال بدین. مثال: Image { source: "pic/avatar.png" }
  7. کامبیز اسدزاده

    کیوت کریتور ۴.۸ بتای اول منتشر شد. تغییرات در این نسخه شامل موارد زیر می‌باشند. Qt Creator version 4.8 contains bug fixes and new features. The most important changes are listed in this document. For a complete list of changes, see the Git log for the Qt Creator sources that you can check out from the public Git repository. For example: git clone git://code.qt.io/qt-creator/qt-creator.git git log --cherry-pick --pretty=oneline origin/4.7..v4.8.0 General * Added `HostOs:PathListSeparator` and `HostOs:ExecutableSuffix` Qt Creator variables * Added `Create Folder` to context menu of path choosers if the path does not exist * Fixed menu items shown in menu locator filter (QTCREATORBUG-20071, QTCREATORBUG-20626) Editing * Made it possible to change default editors in MIME type settings Help All Projects * Added option for parallel jobs to `make` step, which is enabled by default if `MAKEFLAGS` are not set (QTCREATORBUG-18414) * Added auto-detection of the Clang compiler shipped with Qt Creator * Improved handling of relative file paths for custom error parsers (QTCREATORBUG-20605) * Fixed that `make` step required C++ tool chain QMake Projects * Fixed that `make qmake_all` was run in top-level project directory even when building sub-project (QTCREATORBUG-20823) C++ Support * Clang Code Model * Added function overloads to tooltip in completion popup * Added `Build` > `Generate Compilation Database` * Fixed that braced initialization did not provide constructor completion (QTCREATORBUG-20957) * Fixed local references for operator arguments (QTCREATORBUG-20966) QML Support * Fixed indentation in object literals with ternary operator (QTCREATORBUG-7103) * Fixed that symbols from closed projects were still shown in Locator (QTCREATORBUG-13459) Python Support Debugging * GDB * Fixed startup issue with localized debugger output (QTCREATORBUG-20765) * Fixed disassembler view for newer GCC * CDB * Added option to suppress task entries for exceptions (QTCREATORBUG-20915) * LLDB * Fixed instruction-wise stepping Clang Static Analyzer QML Profiler Version Control Systems * Git * Improved behavior if no merge tool is configured * Fixed handling of `file://` remotes (QTCREATORBUG-20618) Image Viewer Test Integration * Google Test * Fixed that not all failure locations were shown (QTCREATORBUG-20967) Model Editor * Fixed that selections and text cursors where exported (QTCREATORBUG-16689) Platform Specific Windows Linux * Added detection of Intel C compiler (QTCREATORBUG-18302) macOS * Fixed light themes for macOS Mojave (10.14) Android * Added support for command line arguments * Added support for environment variables * Fixed connecting to debugger for API level 24 and later
  8. کامبیز اسدزاده

    اگر برای این دو استور تاکید دارین، باید برای این کار هم مشابه پیشنهاد دوم تحت api‌ هایی که ارائه دادن سمت جاوا پیاده کنید و با سی++ برای کیو ام ال هندلش کنید.
  9. کامبیز اسدزاده

    سلام، برای کیوت دو روش وجود داره. استفاده از ماژول اختصاصی این کار (Qt Purchasing) و سفارشی سازی و هماهنگ سازی اون با درگاه‌های داخلی پیاده سازی یک ماژول اختصاصی برای درگاه‌های بانکی و هماهنگ سازی اون سمت سرور (درگاه بانکی سمت وب) با کلاینت نکته: من روش دوم رو پیشنهاد می‌کنم که به طور کامل از سمت سرور با Php پیاده سازی بشه و سمت کلاینت با ++C و JavaScript هماهنگ بشه. این کار نیاز داره که صفحه‌ی پرداخت بانکی در مرورگر وب باز بشه و اطلاعاتش رد و بدل بشه. حتی می‌تونید از ماژول وب خود کیوت هم برای راحتی بیشتر استفاده کنید.
  10. سلام و درود با طعم کیوت همانطور که می‌دانید توسعه نرم‌افزار‌ها و اپلیکیشن‌های کاربردی در هر پلتفرمی نیازمند ابزار‌ها و کنترل‌های مهمی هستند که این امر موجب سرعت بخشیدن به زمان طراحی می‌شود. در صنایع مختلف برنامه‌نویسی مخصوصاً سمت وِب کیت‌های بسیاری جهت تولید و توسعه سریع همراه با کامپوننت‌های بسیار خوبی ارائه شده است که برخی از آن‌ها عبارتند از Bootstrap، UIkit و غیره... ما در نظر داریم کیتی را همانند کیت بوت استرپ برای کیوت کوئیک توسعه دهیم. بنابراین هر کامپوننت یا ماژولی که احساس نیاز از آن می‌شود را برای ما مطرح کنید. ابتدا ما ویژگی‌های بوت استرپ را شبیه سازی خواهیم کرد و سپس کیت‌های مورد نیاز شما را که در تاپیک‌های دیگر اعلان می‌شوند با این کیت ادغام خواهیم کرد. با توجه به اینکه من شخصاً کیتی را از قبل برای توسعه در نظر گرفته ام نام این پروژه Jupiter انتخاب شده است همان کیت را برای برنامه ریزی در این بخش عنوان می‌کنم تا برای ادامه نیز با همکاری همدیگر توسعه داده شود. کامپوننت‌ها Alerts Ads ActionButton ActivityIndicator Accordion Badges Button CircleButton Card CardInfo CardBox CircleImage CircleProgressBar Dropdown DifficultySection Forms Modal Menu MessageBox Map (Based on Google Map) Marker Navs Navbar Notification Profile Pagination Popovers Progress ProgressCircle Space Share SocialFeed Tooltips Header Footer FontSystem Slider InputBox Rate (Vote) WinButton پیشنهادات شما می‌تواند در این لیست اضافه شود... بسیاری از کنترل‌ها در هر زمینه‌ای که نیاز باشد در این لیست اضافه خواهند شد. نکته :‌ تمامی کنترل‌ها باید واکنش گرا باشند. این کیت تحت فونت آیکونیک‌های حرفه‌ای fontawesome مجهز خواهد شد. نکته ۲‌ : تمامی کامپوننت‌ها باید تحت قالب راست به چپ و چپ به راست پشتیبانی شوند. نکته ۳ : تمامی کامپوننت‌ها باید به دو زبان فارسی و انگلیسی واکنشگرا و تحت فونت‌های ویژه پشتیبانی شوند.
  11. کامبیز اسدزاده

    خب از کد‌های سمت QML شما بی خبر هستیم و احتمال این هستش که در این بخش مشکلی وجود داشته باشه. طبق مثالی که زده شده باید رویداد‌های کلیدی (اکشن)‌ ها هم به درستی برای فیلد متن مشخص بشه جزئیات رو مطابق مثال بررسی کنید.
  12. کامبیز اسدزاده

    این مثال رو آزمایش کنید. باید رویداد‌های نمایشی صفحه کلید در سمت کیو‌ام‌ال هم به درستی تنظیم بشه، در صورتی که جواب نداد مشکل مربوط به نسخه‌ی Qt خواهد بود. چون این ویژگی صفحه کلید مجازی در نسخه‌ی تجاری فعال هست که از نسخه‌های اخیر آزاد شده.
  13. کامبیز اسدزاده

    پاسخ سوال اول شما، برای پیاده سازی صفحات رابط کاربری از کیوت کوئیک استفاده کنید. نوع UI فقط برای نمایش محتوا هست و طبق تحقیق خودتون هم که مستند کردین خیلی از ویژگی‌ها رو پشتیبانی نمی‌کنه. در کل گزینه‌ی زیاد جالبی نیست ماهم در پروژه‌هامون ازش استفاده نمی‌کنیم چون نمیشه سفارشی سازی کرد و بیشتر به درد طراحی ویزارد می‌خوره. پاسخ سوال دوم، از انواع Loader استفاده کنید یا اگه می‌خواین که با عمل کلیک شدن فرمی رو نمایش بدین می‌تونید با تابع createComponent شیء رو بسازید و نمایش بدین. پاسخ سوال آخر شما، مثال‌هایی که در همین سایت زده شده رو بررسی کنید. هرچند دیتابیسی نیستند اما در رابطه با نحوه‌ی ارتباطات و پیاده سازی انواع فرم‌ها و ارتباطش با سی++ مثال زده شده. موفق باشید.
  14. با نگاهی به الگوی جستجو تحت الگوریتم Boyer-Moore در استاندارد جدید یعنی C++17 می‌توان به کنترل بیشتر و حتی سرعت بسیار بالاتری نسبت به کتابخانه‌ی Boost رسید. با استاندارد ۱۷ در سی‌پلاس‌پلاس، اکنون می‌توانید از الگوریتم‌های پیشرفته‌تر و بهتری در عین حال سریعتری برای جستجو استفاده کنید. از این پس، شما می‌توانید کنترل بیشتر و همچنین افزایش کارآیی امیدوار کننده ای در بسیاری از موارد داشته باشید. معرفی روش‌های ساده تری برای یافتن الگو در یک رشته O (nm) جایی که n طول تمام رشته است و m طول الگو است وجود دارد. این روش‌ها به عنوان روش‌های دوم و بهتری می‌توان در نظر گرفته شوند. در C++17 الگوریتم جستجو در استاندارد std::search به دو روش زیر به‌روز رسانی شده است: از این پس شما می‌توانید از قانون مجوز استفاده از نسخه‌ی پیش‌فرض الگوریتم استفاده کنید، اما به صورت موازی. شما می‌توانید یک شیء جستجوگر برای مدیریت جستجو فراهم کنید. بنابراین فعلاً ما سه نوع جستجوگر خواهیم داشت: default_searcher boyer_moore_searcher boyer_moore_horspool_searcher پیش‌پردازش هر دو الگوریتم Boyer Moore و Boyer Moore Horspool از برخی اطلاعات در رابطه با رشته الگو استفاده می‌کنند تا بتوانند مقایسه‌های بی نظیری را انجام دهند. به منظور هوشمندانه‌تر شدن هر یک از الگوریتم‌ها یک عمل پیش‌پردازشی را انجام می‌دهند که الگوی ورودی را تحلیل می‌کند. پیچیدگی پیش‌پردازش معمولاً به اندازه‌ی الفبای رشته بستگی دارد. الگوریتم Horspool یک نسخه‌ی ساده از Boyer Moore (با تنها قوانین کاراکتر بد) و استفاده از جداول داخلی کوچکتر بیان می‌شود. پیچیدگی متوسط خطی است، اما بدترین حالت ممکن است O(mn) باشد. در کتابخانه‌ی Boost (بوست) اگر شما با کتابخانه‌ی بوست کار کرده اید، ممکن است شما با الگوریتم‌های جستجو آشنا باشید. در نسخه‌ی ۱.۵۰ (در تاریخ ژوئن ۲۰۱۲ میلادی) مجموعه‌ی جدیدی از الگوریتم‌ها به کتابخانه اضافه شده است. در کتابخانه سه شیء جستجوگر وجود دارد: الگوریتم جستجوی Boyer-Moore الگوریتم جستجوی Boyer-Moore-Horspool الگوریتم جستجوی Knuth-Morris-Pratt نحوه‌ی استفاده چگونه است؟ در سی‌پلاس‌پلاس ۱۷ سه نوع سربار اضافی بر روی ویژگی‌های std::search اضافه شده است. template<class ForwardIterator, class Searcher> ForwardIterator search( ForwardIterator first, ForwardIterator last, const Searcher& searcher ); هر جستجوگر معمولاً دو ورودی تکرار کننده را می‌گیرند. شروع و پایان الگو، و سپس یک پیشفرض باینری که معمولاً آن با عملگر برابر است. آن‌ها ممکن است از پارامتر‌های دیگر نیز استفاده کنند، برای مثال، یک تابع هَش (مخلوط) کننده. در کل، شما می‌توانید آن را به صورت زیر استفاده کنید: std::string testString = "Hello Super World"; std::string needle = "Super"; auto it = search(testString.begin(), testString.end(), boyer_moore_searcher(needle.begin(), needle.end())); if (it == testString.end()) cout << "The string " << needle << " not found\n"; برخی از آزمون‌های پایه برای آزمایش مخزنی ارائه شده است که در آن نمونه کُد آن آمده است. در این مثال نمونه‌هایی نوشته شده است که برخی از آن‌ها کارایی و سرعت بسیار خوبی را در الگوریتم‌های جدید با استفاده از MSVC نشان می‌دهد. آزمایش‌ها چطور کار می‌کنند؟ برنامه یک فایل را بارگذاری می‌کند، مانند کتابی که شامل متنی با ۵۰۰ کیلوبایت اندازه است. تمام محتوای فایل در یک رشته‌ی ورودی ذخیره می‌شود. یک الگو انتخاب شده است که N آخرین حرف از رشته ورودی است. برنامه از چندین الگوریتم استفاده می‌کند و بارها در جستجو هر یک از ITER ها را اجرا می‌کند. برای مثال نسخه‌ی std::string::find به صورت زیر آمده است: RunAndMeasure("string::find", [&]() { for (size_t i = 0; i < ITERS; ++i) { std::size_t found = testString.find(needle); if (found == std::string::npos) std::cout << "The string " << needle << " not found\n"; } }); نسخه‌ی boyer_moore_horspool به صورت زیر: RunAndMeasure("boyer_moore_horspool_searcher", [&]() { for (size_t i = 0; i < ITERS; ++i) { auto it = std::search(testString.begin(), testString.end(), std::boyer_moore_horspool_searcher( needle.begin(), needle.end())); if (it == testString.end()) std::cout << "The string " << needle << " not found\n"; } }); در اینحا نتیجه بر روی سخت افزار با پردازنده‌ی i7 4720HQ و Win 10 همراه با MSVC 2017 15.8 ریلیز ۶۴ بیت می‌باشد. الگو از ۱۰۰۰۰ حرف انتهای متن ورودی تشکیل شده است: .\searchers.exe ..\..\SampleBooks\book-test.txt 1000 10000 string length: 547412 test iterations: 1000 pattern length: 10000 string::find: 693.449 ms default searcher: 1102.25 ms boyer_moore_searcher: 133.558 ms boyer_moore_horspool_searcher: 37.0234 ms الگو در اینجا اکنون ۱۰۰ حرف آخر از متن ورودی است: .\searchers.exe ..\..\SampleBooks\book-test.txt 1000 200 string length: 547412 test iterations: 1000 pattern length: 200 string::find: 158.612 ms default searcher: 467.518 ms boyer_moore_searcher: 58.8752 ms boyer_moore_horspool_searcher: 56.7017 ms البته توجه داشته باشید که، نتایج نمونه نیاز به تحقیق بیشتری دارند. برای مثال در الگو‌های کوتاه، استفاده از روش string::find معمولاً سریعتر است. بنابراین، الگوریتم Horspool سریعتر از الگوریتم boyer_moore در این مورد بوده است. واقعیت مهم در مورد std::search این است که آن یک الگوریتم عمومی است! بنابراین شما می‌توانید آن را فقط برای رشته‌ها استفاده کنید. در اینجا مثالی آورده شده است که برای جستجوی یک الگو از شماره‌های موجود در یک بردار از عدد‌های صحیح است. std::vector<int> testVector(1000000); std::iota(testVector.begin(), testVector.end(), 0); std::vector vecNeedle(testVector.end() - 1000, testVector.end()); auto it = std::search(testVector.begin(), testVector.end(), std::boyer_moore_horspool_searcher( vecNeedle.begin(), vecNeedle.end())); if (it == testVector.end()) std::cout << "The pattern " << needle << " not found\n"; خلاصه‌ی نتیجه در این مقاله به صورت مختصر در رابطه با قابلیت‌های جدیدی را که در سی‌پلاس‌پلاس ۱۷ دریافت کرده ایم اشاره شده است. مهم این است که بدانید الگوریتم‌های جدید همیشه سریعتر از std::string::find (برای رشته‌ها) نیستند. منبع : Dzone
  15. کامبیز اسدزاده

    در اسناد QML هر فایلی می‌تونه به عضو‌ها و خواص فایل‌های والد خودش دسترسی پیدا کنه. اما روش پیشنهادی این هست با تعریف یک QtObject اعضای مورد نظر خودتون رو تعریف کنید تا هر جا داخل هر فایلی که هستین بتونید به اون دسترسی داشته باشید. به عنوان مثال فایل main.qml import QtQuick 2.11 import QtQuick.Window 2.11 Window { visible: true width: 640 height: 480 title: qsTr("Hello World") QtObject { id:mainObject property string name : "Kambiz" } Page1 { anchors.fill: parent; } } و فایل دیگه که با نامPage1.qml هست تنها کافیه درونش شناسه‌ی QtObject رو صدا بزنید. به صورت زیر: import QtQuick 2.0 Item { Text { anchors.centerIn: parent text: mainObject.name } } اینجا من مقدار name که به عنوان عضوی از فایل main.qml هست رو صدا زدم و برابر با مقدار نوع Text قرار دادم.
×