📄 framcont.htm
字号:
<A HREF="Chap06.htm#Heading177">Explicit instantiation</A><BR>
<UL>
<A HREF="Chap06.htm#Heading178">Explicit specification of template functions</A><BR>
</UL>
<A HREF="Chap06.htm#Heading179">Controlling template instantiation</A><BR>
<UL>
<A HREF="Chap06.htm#Heading180">The inclusion vs. separation models</A><BR>
<A HREF="Chap06.htm#Heading181">The export keyword</A><BR>
</UL>
<A HREF="Chap06.htm#Heading182">Template programming idioms</A><BR>
<UL>
<A HREF="Chap06.htm#Heading183">The “curiously-recurring template”</A><BR>
<A HREF="Chap06.htm#Heading184">Traits</A><BR>
<A HREF="Chap06.htm#Heading185">Implementing Locales</A><BR>
</UL>
<A HREF="Chap06.htm#Heading186">Summary</A><BR>
<A HREF="Chap06.htm#Heading187">Exercises</A><BR>
</UL>
<A HREF="Chap07.htm">7: STL Containers & Iterators</A><BR>
<UL>
<A HREF="Chap07.htm#Heading189">Containers and iterators</A><BR>
<UL>
<A HREF="Chap07.htm#Heading190">STL reference documentation</A><BR>
</UL>
<A HREF="Chap07.htm#Heading191">The Standard Template Library </A><BR>
<A HREF="Chap07.htm#Heading192">The basic concepts</A><BR>
<A HREF="Chap07.htm#Heading193">Containers of strings</A><BR>
<A HREF="Chap07.htm#Heading194">Inheriting from STL containers</A><BR>
<A HREF="Chap07.htm#Heading195">A plethora of iterators</A><BR>
<UL>
<A HREF="Chap07.htm#Heading196">Iterators in reversible containers</A><BR>
<A HREF="Chap07.htm#Heading197">Iterator categories</A><BR>
<UL>
<A HREF="Chap07.htm#Heading198">Input: read-only, one pass</A><BR>
<A HREF="Chap07.htm#Heading199">Output: write-only, one pass</A><BR>
<A HREF="Chap07.htm#Heading200">Forward: multiple read/write</A><BR>
<A HREF="Chap07.htm#Heading201">Bidirectional: operator--</A><BR>
<A HREF="Chap07.htm#Heading202">Random-access: like a pointer</A><BR>
<A HREF="Chap07.htm#Heading203">Is this really important?</A><BR>
</UL>
<A HREF="Chap07.htm#Heading204">Predefined iterators</A><BR>
<UL>
<A HREF="Chap07.htm#Heading205">IO stream iterators</A><BR>
<A HREF="Chap07.htm#Heading206">Manipulating raw storage</A><BR>
</UL>
</UL>
<A HREF="Chap07.htm#Heading207">Basic sequences: vector, list & deque</A><BR>
<UL>
<A HREF="Chap07.htm#Heading208">Basic sequence operations</A><BR>
</UL>
<A HREF="Chap07.htm#Heading209">vector</A><BR>
<UL>
<A HREF="Chap07.htm#Heading210">Cost of overflowing allocated storage</A><BR>
<A HREF="Chap07.htm#Heading211">Inserting and erasing elements</A><BR>
</UL>
<A HREF="Chap07.htm#Heading212">deque</A><BR>
<UL>
<A HREF="Chap07.htm#Heading213">Converting between sequences</A><BR>
<A HREF="Chap07.htm#Heading214">Cost of overflowing allocated storage</A><BR>
<A HREF="Chap07.htm#Heading215">Checked random-access</A><BR>
</UL>
<A HREF="Chap07.htm#Heading216">list</A><BR>
<UL>
<A HREF="Chap07.htm#Heading217">Special list operations</A><BR>
<UL>
<A HREF="Chap07.htm#Heading218">list vs. set</A><BR>
</UL>
<A HREF="Chap07.htm#Heading219">Swapping all basic sequences</A><BR>
<A HREF="Chap07.htm#Heading220">Robustness of lists</A><BR>
</UL>
<A HREF="Chap07.htm#Heading221">Performance comparison</A><BR>
<A HREF="Chap07.htm#Heading222">set</A><BR>
<UL>
<A HREF="Chap07.htm#Heading223">Eliminating strtok( )</A><BR>
<A HREF="Chap07.htm#Heading224">StreamTokenizer: a more flexible solution</A><BR>
<A HREF="Chap07.htm#Heading225">A completely reusable tokenizer</A><BR>
</UL>
<A HREF="Chap07.htm#Heading226">stack</A><BR>
<A HREF="Chap07.htm#Heading227">queue</A><BR>
<A HREF="Chap07.htm#Heading228">Priority queues</A><BR>
<A HREF="Chap07.htm#Heading229">Holding bits</A><BR>
<UL>
<A HREF="Chap07.htm#Heading230">bitset<n></A><BR>
<A HREF="Chap07.htm#Heading231">vector<bool></A><BR>
</UL>
<A HREF="Chap07.htm#Heading232">Associative containers</A><BR>
<UL>
<A HREF="Chap07.htm#Heading233">Generators and fillers for associative containers</A><BR>
<A HREF="Chap07.htm#Heading234">The magic of maps</A><BR>
<UL>
<A HREF="Chap07.htm#Heading235">A command-line argument tool</A><BR>
</UL>
<A HREF="Chap07.htm#Heading236">Multimaps and duplicate keys</A><BR>
<A HREF="Chap07.htm#Heading237">Multisets</A><BR>
</UL>
<A HREF="Chap07.htm#Heading238">Combining STL containers</A><BR>
<A HREF="Chap07.htm#Heading239">Cleaning up containers of pointers</A><BR>
<A HREF="Chap07.htm#Heading240">Creating your own containers</A><BR>
<A HREF="Chap07.htm#Heading241">Freely-available STL extensions</A><BR>
<A HREF="Chap07.htm#Heading242">Non-STL containers</A><BR>
<UL>
<A HREF="Chap07.htm#Heading243">Bitset</A><BR>
<A HREF="Chap07.htm#Heading244">Valarray</A><BR>
</UL>
<A HREF="Chap07.htm#Heading245">Summary</A><BR>
<A HREF="Chap07.htm#Heading246">Exercises</A><BR>
</UL>
<A HREF="Chap08.htm">8: STL Algorithms</A><BR>
<UL>
<A HREF="Chap08.htm#Heading248">Function objects</A><BR>
<UL>
<A HREF="Chap08.htm#Heading249">Classification of function objects</A><BR>
<A HREF="Chap08.htm#Heading250">Automatic creation of function objects</A><BR>
<UL>
<A HREF="Chap08.htm#Heading251">Binders</A><BR>
<A HREF="Chap08.htm#Heading252">Function pointer adapters</A><BR>
</UL>
<A HREF="Chap08.htm#Heading253">SGI extensions</A><BR>
</UL>
<A HREF="Chap08.htm#Heading254">A catalog of STL algorithms</A><BR>
<UL>
<A HREF="Chap08.htm#Heading255">Support tools for example creation</A><BR>
<A HREF="Chap08.htm#Heading256">Filling & generating</A><BR>
<UL>
<A HREF="Chap08.htm#Heading257">Example</A><BR>
</UL>
<A HREF="Chap08.htm#Heading258">Counting</A><BR>
<UL>
<A HREF="Chap08.htm#Heading259">Example</A><BR>
</UL>
<A HREF="Chap08.htm#Heading260">Manipulating sequences</A><BR>
<UL>
<A HREF="Chap08.htm#Heading261">Example</A><BR>
</UL>
<A HREF="Chap08.htm#Heading262">Searching & replacing</A><BR>
<UL>
<A HREF="Chap08.htm#Heading263">Example</A><BR>
</UL>
<A HREF="Chap08.htm#Heading264">Comparing ranges</A><BR>
<UL>
<A HREF="Chap08.htm#Heading265">Example</A><BR>
</UL>
<A HREF="Chap08.htm#Heading266">Removing elements</A><BR>
<UL>
<A HREF="Chap08.htm#Heading267">Example</A><BR>
</UL>
<A HREF="Chap08.htm#Heading268">Sorting and operations on sorted ranges</A><BR>
<UL>
<A HREF="Chap08.htm#Heading269">Sorting</A><BR>
<A HREF="Chap08.htm#Heading270">Example</A><BR>
<A HREF="Chap08.htm#Heading271">Locating elements in sorted ranges</A><BR>
<A HREF="Chap08.htm#Heading272">Example</A><BR>
<A HREF="Chap08.htm#Heading273">Merging sorted ranges</A><BR>
<A HREF="Chap08.htm#Heading274">Example</A><BR>
<A HREF="Chap08.htm#Heading275">Set operations on sorted ranges</A><BR>
<A HREF="Chap08.htm#Heading276">Example</A><BR>
</UL>
<A HREF="Chap08.htm#Heading277">Heap operations</A><BR>
<A HREF="Chap08.htm#Heading278">Applying an operation to each element in a range</A><BR>
<UL>
<A HREF="Chap08.htm#Heading279">Examples</A><BR>
</UL>
<A HREF="Chap08.htm#Heading280">Numeric algorithms</A><BR>
<UL>
<A HREF="Chap08.htm#Heading281">Example</A><BR>
</UL>
<A HREF="Chap08.htm#Heading282">General utilities</A><BR>
</UL>
<A HREF="Chap08.htm#Heading283">Creating your own STL-style algorithms</A><BR>
<A HREF="Chap08.htm#Heading284">Summary</A><BR>
<A HREF="Chap08.htm#Heading285">Exercises</A><BR>
</UL>
<A HREF="Part3.htm">Part 3: Advanced Topics</A><BR>
<A HREF="Chap09.htm">9: Run-time type identification</A><BR>
<UL>
<A HREF="Chap09.htm#Heading288">The “Shape” example</A><BR>
<A HREF="Chap09.htm#Heading289">What is RTTI?</A><BR>
<UL>
<A HREF="Chap09.htm#Heading290">Two syntaxes for RTTI</A><BR>
</UL>
<A HREF="Chap09.htm#Heading291">Syntax specifics</A><BR>
<UL>
<A HREF="Chap09.htm#Heading292">typeid( ) with built-in types</A><BR>
<A HREF="Chap09.htm#Heading293">Producing the proper type name</A><BR>
<A HREF="Chap09.htm#Heading294">Nonpolymorphic types</A><BR>
<A HREF="Chap09.htm#Heading295">Casting to intermediate levels</A><BR>
<A HREF="Chap09.htm#Heading296">void pointers</A><BR>
<A HREF="Chap09.htm#Heading297">Using RTTI with templates</A><BR>
</UL>
<A HREF="Chap09.htm#Heading298">References</A><BR>
<UL>
<A HREF="Chap09.htm#Heading299">Exceptions</A><BR>
</UL>
<A HREF="Chap09.htm#Heading300">Multiple inheritance</A><BR>
<A HREF="Chap09.htm#Heading301">Sensible uses for RTTI</A><BR>
<UL>
<A HREF="Chap09.htm#Heading302">Revisiting the trash recycler</A><BR>
</UL>
<A HREF="Chap09.htm#Heading303">Mechanism & overhead of RTTI</A><BR>
<A HREF="Chap09.htm#Heading304">Creating your own RTTI</A><BR>
<A HREF="Chap09.htm#Heading305">Explicit cast syntax</A><BR>
<A HREF="Chap09.htm#Heading306">Summary</A><BR>
<A HREF="Chap09.htm#Heading307">Exercises</A><BR>
</UL>
<A HREF="Chap10.htm">10: Multiple inheritance</A><BR>
<UL>
<A HREF="Chap10.htm#Heading309">Perspective</A><BR>
<A HREF="Chap10.htm#Heading310">Duplicate subobjects</A><BR>
<A HREF="Chap10.htm#Heading311">Ambiguous upcasting</A><BR>
<A HREF="Chap10.htm#Heading312">virtual base classes</A><BR>
<UL>
<A HREF="Chap10.htm#Heading313">The "most derived" class and virtual base initialization</A><BR>
<A HREF="Chap10.htm#Heading314">"Tying off" virtual bases with a default constructor</A><BR>
</UL>
<A HREF="Chap10.htm#Heading315">Overhead</A><BR>
<A HREF="Chap10.htm#Heading316">Upcasting</A><BR>
<UL>
<A HREF="Chap10.htm#Heading317">Persistence</A><BR>
<UL>
<A HREF="Chap10.htm#Heading318">MI-based persistence</A><BR>
<A HREF="Chap10.htm#Heading319">Improved persistence</A><BR>
</UL>
</UL>
<A HREF="Chap10.htm#Heading320">Avoiding MI</A><BR>
<A HREF="Chap10.htm#Heading321">Mixin types</A><BR>
<A HREF="Chap10.htm#Heading322">Repairing an interface</A><BR>
<A HREF="Chap10.htm#Heading323">Summary</A><BR>
<A HREF="Chap10.htm#Heading324">Exercises</A><BR>
</UL>
<A HREF="Chap11.htm">11: Design patterns</A><BR>
<UL>
<A HREF="Chap11.htm#Heading326">The pattern concept</A><BR>
<UL>
<A HREF="Chap11.htm#Heading327">The singleton</A><BR>
<UL>
<A HREF="Chap11.htm#Heading328">Variations on singleton</A><BR>
</UL>
</UL>
<A HREF="Chap11.htm#Heading329">Classifying patterns</A><BR>
<UL>
<A HREF="Chap11.htm#Heading330">Features, idioms, patterns</A><BR>
<A HREF="Chap11.htm#Heading331">Basic complexity hiding</A><BR>
</UL>
<A HREF="Chap11.htm#Heading332">Dynamic aggregation</A><BR>
<A HREF="Chap11.htm#Heading333">Factories: encapsulating object creation</A><BR>
<UL>
<A HREF="Chap11.htm#Heading334">Polymorphic factories</A><BR>
<A HREF="Chap11.htm#Heading335">Abstract factories</A><BR>
<A HREF="Chap11.htm#Heading336">Virtual constructorsBE</A><BR>
<UL>
<A HREF="Chap11.htm#Heading337">Destructor operation</A><BR>
</UL>
</UL>
<A HREF="Chap11.htm#Heading338">Callbacks</A><BR>
<UL>
<A HREF="Chap11.htm#Heading339">Functor/Command</A><BR>
<A HREF="Chap11.htm#Heading340">Strategy</A><BR>
<A HREF="Chap11.htm#Heading341">Observer</A><BR>
<UL>
<A HREF="Chap11.htm#Heading342">The “interface” idiom</A><BR>
<A HREF="Chap11.htm#Heading343">The “inner class” idiom</A><BR>
<A HREF="Chap11.htm#Heading344">The observer example</A><BR>
</UL>
</UL>
<A HREF="Chap11.htm#Heading345">Multiple dispatching</A><BR>
<UL>
<A HREF="Chap11.htm#Heading346">Visitor, a type of multiple dispatching</A><BR>
</UL>
<A HREF="Chap11.htm#Heading347">Proxy</A><BR>
<A HREF="Chap11.htm#Heading348">Efficiency</A><BR>
<UL>
<A HREF="Chap11.htm#Heading349">Reference counting</A><BR>
<A HREF="Chap11.htm#Heading350">Flyweight</A><BR>
</UL>
<A HREF="Chap11.htm#Heading351">The composite</A><BR>
<A HREF="Chap11.htm#Heading352">Evolving a design: the trash recycler</A><BR>
<A HREF="Chap11.htm#Heading353">Improving the design</A><BR>
<UL>
<A HREF="Chap11.htm#Heading354">“Make more objects”</A><BR>
<A HREF="Chap11.htm#Heading355">A pattern for prototyping creation</A><BR>
<UL>
<A HREF="Chap11.htm#Heading356">Trash subclasses</A><BR>
<A HREF="Chap11.htm#Heading357">Parsing Trash from an external file</A><BR>
<A HREF="Chap11.htm#Heading358">Recycling with prototyping</A><BR>
</UL>
</UL>
<A HREF="Chap11.htm#Heading359">Abstracting usage</A><BR>
<A HREF="Chap11.htm#Heading360">Applying double dispatching</A><BR>
<UL>
<A HREF="Chap11.htm#Heading361">Implementing the double dispatch</A><BR>
</UL>
<A HREF="Chap11.htm#Heading362">Applying the visitor pattern</A><BR>
<UL>
<A HREF="Chap11.htm#Heading363">More coupling?</A><BR>
</UL>
<A HREF="Chap11.htm#Heading364">RTTI considered harmful?</A><BR>
<A HREF="Chap11.htm#Heading365">Summary</A><BR>
<A HREF="Chap11.htm#Heading366">Exercises</A><BR>
</UL>
<A HREF="AppendA.htm">A: Recommended reading</A><BR>
<UL>
<A HREF="AppendA.htm#Heading368">C</A><BR>
<A HREF="AppendA.htm#Heading369">General C++</A><BR>
<UL>
<A HREF="AppendA.htm#Heading370">My own list of books </A><BR>
</UL>
<A HREF="AppendA.htm#Heading371">Depth & dark corners</A><BR>
<A HREF="AppendA.htm#Heading372">The STL</A><BR>
<A HREF="AppendA.htm#Heading373">Design Patterns</A><BR>
</UL>
<A HREF="AppendB.htm">B: Etc</A><BR>
<A HREF="TicV218.htm">Index</A><BR>
</UL>
</BODY>
</HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -