《深入浅出MFC》2/e
么程度?探究源代码,岂不有违「黑盒子」初衷?但是,没有办法,他们也同意,不把那些 奇奇怪怪的宏和指令搞清楚,只能生产出玩具来。对付MFC 内部机制,态度不必像对付 MFC 类别一样;你只需好好走过那么一回,有个印象,足矣。至于庞大繁复的整个application framework 技术的铺陈串接,不必人人都痛苦一次,我做这么一次也就够了 。 11 林语堂先生在朱门一书中说过的一句话,适足作为我写作本书的心境,同时也对我与朋友 // 父窗口 (DLGPROC)About // 对话框函数名称 ); 对 话 框 结 束 , 回 返 对话框內部自有一个消息 回路(由系統维护) DialogBox 打开一个对话框: 1 2 3 4 当使用者按下 [ OK] 钮,产生 WM_COMMAND 命令消息, 识别码为IDOK,于是流往 数以千计的Windows APIs,每个看起来都好象比重相若(至少你从手册上看不出来孰轻 孰重)。有些APIs 彼此虽有群组关系,却没有相近或组织化的函数名称。星罗棋布, 雾列星驰;又似雪球一般愈滚愈多,愈滚愈大。撰写Windows 应用程序需要大量的耐 力与毅力,以及大量的小心谨慎! MFC 帮助我们把这些浩繁的APIs,利用对象导向的原理,逻辑地组织起来,使它们具 备抽象化、封装化、继承性、多态性、模块化的性质。0 码力 | 1009 页 | 11.08 MB | 1 年前3Hello 算法 1.2.0 繁体中文 C++ 版
若你是演算法初學者,從未接觸過演算法,或者已經有一些刷題經驗,對資料結構與演算法有模糊的認識, 在會與不會之間反覆橫跳,那麼本書正是為你量身定製的! 如果你已經積累一定的刷題量,熟悉大部分題型,那麼本書可助你回顧與梳理演算法知識體系,倉庫源程式 碼可以當作“刷題工具庫”或“演算法字典”來使用。 若你是演算法“大神”,我們期待收到你的寶貴建議,或者一起參與創作。 前置條件 你需要至少具備任一語言的程式設計基礎,能夠閱讀和編寫簡單程式碼。 感謝我的女朋友泡泡作為本書的首位讀者,從演算法小白的角度提出許多寶貴建議,使得本書更適合 新手閱讀; ‧ 感謝騰寶、琦寶、飛寶為本書起了一個富有創意的名字,喚起大家寫下第一行程式碼“Hello World!” 的美好回憶; ‧ 感謝校銓在智慧財產權方面提供的專業幫助,這對本開源書的完善起到了重要作用; ‧ 感謝蘇潼為本書設計了精美的封面和 logo ,並在我的強迫症的驅使下多次耐心修改; ‧ 感謝 @squidfunk 和階段三的學習。 第 0 章 前言 www.hello‑algo.com 9 圖 0‑8 演算法學習路線 0.3 小結 ‧ 本書的主要受眾是演算法初學者。如果你已有一定基礎,本書能幫助你系統回顧演算法知識,書中源程 式碼也可作為“刷題工具庫”使用。 ‧ 書中內容主要包括複雜度分析、資料結構和演算法三部分,涵蓋了該領域的大部分主題。 ‧ 對於演算法新手,在初學階段閱讀一本入門書至關重要,可以少走許多彎路。0 码力 | 379 页 | 18.79 MB | 10 月前3jsc::chunk_evenly Range Adaptor for Distributing Work Across Tasks
is Suitable to distribute work across taskSs chunk count = 5 @xe9 昌 xxe9 回回 回回日回 chunk size =5 remainder 回回 chunk count = 5 由remainder 5 quotient chunk size quotient process tile_count tiles 一 t const tile_size = (input_range.size() + tile_count - 1) / tile_countj; 四回回四四回回 tile_count != 6 下 日 0 > Also,fork & join model introduces unnecessary0 码力 | 1 页 | 1.38 MB | 5 月前3Back to Basics: Move Semantics
tring el = xi atring e2 = std:imove(el) , al: e2 品 回 避 回 mr 上回 dala。 [| "msTvTerg | da 册 EPE 和equivalentto ttatia_castcatringaty el eaass0 码力 | 23 页 | 1020.10 KB | 5 月前3现代C++ 教程:高速上手C++11/14/17/20
都支持,但是)它是一个非法的行为,我们需要使用接下来即将介绍的 C++11 引入的 constexpr 特性 来解决这个问题;而对于 arr_5 来说,C++98 之前的编译器无法得知 len_foo() 在运行期实际上是返 回一个常数,这也就导致了非法的产生。 注意,现在大部分编译器其实都带有自身编译优化,很多非法行为在编译器优化的加持下会 变得合法,若需重现编译报错的现象需要使用老版本的编译器。 C++11 提供了 量的历史遗留问题,消除了诸如 std::vector、std::string 之类的额外开销,也才使得函数对象容器 std::function 成为了可能。 左值、右值的纯右值、将亡值、右值 要弄明白右值引用到底是怎么一回事,必须要对左值和右值做一个明确的理解。 左值 (lvalue, left value),顾名思义就是赋值符号左边的值。准确来说,左值是表达式(不一定是赋 值表达式)后依然存在的持久对象。 右值0 码力 | 83 页 | 2.42 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 性能优化之无分支编程 Branchless Programming
字节的 eax ,零扩展:高 3 字节 填充零) • 返回类型 int 占据 4 字节( eax 寄存器就是 4 字节的) • 返回值都放 eax 寄存器(刚刚算得的就在 eax ,直接返 回) 无分支优化:从语法角度分析 • 刚刚其实是利用了 C 语言把 bool 类型的 true 当做 1 , false 当做 0 的特性。 • (int)true == 1 (int)false0 码力 | 47 页 | 8.45 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 10 从稀疏数据结构到量化数据类型
uint8_t (范围从 0 到 255 ),着色器在读取的时候才会把他 转换成 float (范围从 0.0 到 1.0 )。这就是浮点数的 量化,存储时转换成低精度的定点数,读取时再转换 回高精度的浮点数,从而节省 4 倍内存带宽,提升 GPU 性能。 有没有更小的浮点类型? • 浮点数在接近 0 的时候精度更高,在一些图形学应用中还是很必要的(比如表示粒子的速 度),定点数就做不到。0 码力 | 102 页 | 9.50 MB | 1 年前3C++高性能并行编程与优化 - 课件 - 14 C++ 标准库系列课 - 你所不知道的 set 容器
ForwardIt end); set 的妙用:排序 • 刚刚说,把 vector 转成 set 会让元素自动排序和去 重。 • 我们其实可以利用这一点,把 vector 转成 set 再转 回 vector ,这样就实现去重了。 • template• void assign(ForwardIt beg, ForwardIt end); 清空 set 0 码力 | 83 页 | 10.23 MB | 1 年前3generic graph libraries
BOs BOS | ATL | 1523 5|4|5 SEA | MSP | 2704 0|16 BOs |prwl no9l 5|3|7 Comfressed 0回国5 , 1|引[4 ” 加四上加可 2 3|5引[lo 3 4可上@ 4 5上5加| 5 引罗[5 | 一 1/ | Storage Representing0 码力 | 76 页 | 6.59 MB | 5 月前3C++高性能并行编程与优化 - 课件 - 05 C++11 开始的多线程编程
true 。 • 第二次上锁,由于自己已经上锁,所以失败 了,返回 false 。 只等待一段时间: try_lock_for() • try_lock() 碰到已经上锁的情况,会立即返 回 false 。 • 如果需要等待,但仅限一段时间,可以用 std::timed_mutex 的 try_lock_for() 函数, 他的参数是最长等待时间,同样是由 chrono 指定时间单位。超过这个时间还没0 码力 | 79 页 | 14.11 MB | 1 年前3
共 19 条
- 1
- 2