<?xml version="1.0" encoding="gb2312" ?>
<?xml-stylesheet type="text/xsl" href="xsl/content.xsl"?>

<treeview title="Effective STL">
	<item text="前言" href="preface.html"/>
	<item text="致谢" href="acknowledgments.html"/>
	<item text="导读" href="introduction.html"/>
	<item text="容器" href="chap_01.html">
		<item text="条款1：仔细选择你的容器" href="item_01.html"/>
		<item text="条款2：小心对“容器无关代码”的幻想" href="item_02.html"/>
		<item text="条款3：使容器里对象的拷贝操作轻量而正确" href="item_03.html"/>
		<item text="条款4：用empty来代替检查size()是否为0" href="item_04.html"/>
		<item text="条款5：尽量使用区间成员函数代替它们的单元素兄弟" href="item_05.html"/>
		<item text="条款6：警惕C++最令人恼怒的解析" href="item_06.html"/>
		<item text="条款7：当使用new得指针的容器时，记得在销毁容器前delete那些指针" href="item_07.html"/>
		<item text="条款8：永不建立auto_ptr的容器" href="item_08.html"/>
		<item text="条款9：在删除选项中仔细选择" href="item_09.html"/>
		<item text="条款10：注意分配器的协定和约束" href="item_10.html"/>
		<item text="条款11：理解自定义分配器的正确用法" href="item_11.html"/>
		<item text="条款12：对STL容器线程安全性的期待现实一些" href="item_12.html"/>
	</item>
	<item text="vector和string" href="chap_02.html">
		<item text="条款13：尽量使用vector和string来代替动态分配的数组" href="item_13.html"/>
		<item text="条款14：使用reserve来避免不必要的重新分配" href="item_14.html"/>
		<item text="条款15：小心string实现的多样性" href="item_15.html"/>
		<item text="条款16：如何将vector和string的数据传给传统的API"  href="item_16.html"/>
		<item text="条款17：使用“交换技巧”来修整过剩容量" href="item_17.html"/>
		<item text="条款18：避免使用vector&lt;bool&gt;" href="item_18.html"/>
	</item>
	<item text="关联容器" href="chap_03.html">
		<item text="条款19：了解相等和等价的区别" href="item_19.html"/>
		<item text="条款20：为指针的关联容器指定比较类型" href="item_20.html"/>
		<item text="条款21：永远让比较函数对相等的值返回false" href="item_21.html"/>
		<item text="条款22：避免原地修改set和multiset的键" href="item_22.html"/>
		<item text="条款23：考虑使用有序vector代替关联容器" href="item_23.html"/>
		<item text="条款24：当关乎效率时应该在map::operator[]和map-insert之间仔细选择" href="item_24.html"/>
		<item text="条款25：熟悉非标准散列容器" href="item_25.html"/>
	</item>
	<item text="迭代器" href="chap_04.html">
		<item text="条款26：尽量用iterator代替const_iterator，reverse_iterator和const_reverse_iterator" href="item_26.html"/>
		<item text="条款27：用distance和advance把const_iterator转化成iterator" href="item_27.html"/>
		<item text="条款28：了解如何通过reverse_iterator的base得到iterator" href="item_28.html"/>
		<item text="条款29：需要一个一个字符输入时考虑使用istreambuf_iterator" href="item_29.html"/>
	</item>
	<item text="算法" href="chap_05.html">
		<item text="条款30：确保目标区间足够大" href="item_30.html"/>
		<item text="条款31：了解你的排序选择" href="item_31.html"/>
		<item text="条款32：如果你真的想删除东西的话就在类似remove的算法后接上erase" href="item_32.html"/>
		<item text="条款33：提防在指针的容器上使用类似remove的算法" href="item_33.html"/>
		<item text="条款34：注意哪个算法需要有序区间" href="item_34.html"/>
		<item text="条款35：通过mismatch或lexicographical比较实现简单的忽略大小写字符串比较" href="item_35.html"/>
		<item text="条款36：了解copy_if的正确实现" href="item_36.html"/>
		<item text="条款37：用accumulate或for_each来统计区间" href="item_37.html"/>
	</item>
	<item text="仿函数、仿函数类、函数等" href="chap_06.html">
		<item text="条款38：把仿函数类设计为用于值传递" href="item_38.html"/>
		<item text="条款39：用纯函数做判断式" href="item_39.html"/>
		<item text="条款40：使仿函数类可适配" href="item_40.html"/>
		<item text="条款41：了解使用ptr_fun、mem_fun和mem_fun_ref的原因" href="item_41.html"/>
		<item text="条款42：确定less&lt;T&gt;表示operator&lt;." href="item_42.html"/>
	</item>
	<item text="使用STL编程" href="chap_07.html">
		<item text="条款43：尽量用算法调用代替手写循环" href="item_43.html"/>
		<item text="条款44：尽量用成员函数代替同名的算法" href="item_44.html"/>
		<item text="条款45：注意count、find、binary_search、lower_bound、upper_bound和equal_range的区别" href="item_45.html"/>
		<item text="条款46：考虑使用函数对象代替函数作算法的参数" href="item_46.html"/>
		<item text="条款47：避免产生只写代码" href="item_47.html"/>
		<item text="条款48：总是#include适当的头文件" href="item_48.html"/>
		<item text="条款49：学习破解有关STL的编译器诊断信息" href="item_49.html"/>
		<item text="条款50：让你自己熟悉有关STL的网站" href="item_50.html"/>
	</item>
	<item text="参考书目" href="bibliography.html"/>
	<item text="附录A：区域设置和忽略大小写的字符串比较" href="appendix_a.html"/>
	<item text="附录B：在微软STL平台上的注意事项" href="appendix_b.html"/>
	<item text="词汇表" href="glossary.html"/>
	<item text="索引"/>
	<item text="关于本电子书" href="about.html"/>
</treeview>
