STL ªº²Õ¦¨
STL ¥Ñ¤T³¡¤À©Ò²Õ¦¨¡A¥Ñ¸ê®Æ®e¾¹¡]¤]´N¬O©Ò¿×ªº¸ê®Æµ²ºcªº³¡¤À¡^
¡B¸ê®Æ«ü¦ì¾¹¥H¤Îºtºâªk¡C¨ä¤¤¤j®a¥i¯à¤ñ¸û¤£ÁA¸Ñªº¬O¸ê®Æ«ü¦ì¾¹ªº³¡¤À¡C
²³æ¨Ó»¡¡A¤@ºØ¸ê®Æ®e¾¹´N¬O¤@ºØ¦s©ñ¸ê®ÆªºªÅ¶¡¡F¦Ó¨CºØ®e¾¹Â\©ñ¸ê®Æªº
¤è¦¡³£¤£¤@¼Ë¡C¨Ò¦p list ¬O¥H double-linked list ªº¤è¦¡¦s©ñ¸ê®Æ¡A¦Ó
vector «h¬O¥H¦V¶q°}¦Cªº¤è¦¡¦s©ñ¸ê®Æ¡C
µM¦Ó§ÚÌn³z¹L¤°»òªF¦è¨Ó¦s¨ú¤@Ó¸ê®Æµ²ºc¸Ì±ªº¸ê®Æ©O¡H¥H array ¨ÓÁ¿
¡A§Ú̳z¹LIndex¨Ó¦s¨ú¸ê®Æ¡A¥H linked list ¦Ó¨¥§Ú̳z¹L node ¨Ó¦s¨ú¸ê®Æ
¡C¦Ó¸ê®Æ«ü¦ì¾¹§êºtªº´N¬O³o¨Ç¨¤¦â¡A³z¹L«ü¦ì¾¹§ÚÌ¥i¥H³B²z«ü¦ì¾¹©Ò«ü¦Vªº
¸ê®Æ¡C¦Ó¥B¤]¥i¥H³z¹L¹ï«ü¦ì¾¹ªº¹Bºâ¹F¨ì¦³¥Øªº¦a¹C¨«©ó¸ê®Æµ²ºc¸Ì±ªº¦Uµ§
¸ê®Æ¶¡¡C
¦Ó STL ©Ò´£¨Ñªººtºâªk«h¬O¬[ºc¦b¤@Ó¦³²Î¤@¦s¨ú¤¶±ªº¸ê®Æ®e¾¹»P«ü¦ì¾¹¤W
¡C¦Ó§Ú̪ºµ{¦¡¨ä¹ê´N¬Oºtºâªk»P¸ê®Æµ²ºcªº°t¦X¡Aºtºâªk´N¬O³B²z¸ê®Æªº¤@®M
¦³¨t²Îªº¬yµ{¡C¡]©Ò¿×ªº¦³¨t²Î¡A³q±¬O«ü¨ã¦³ªx¥Î©Ê¡A¥i¥H¾A¥Î¦b¦UºØ»Ýn¥¦ªº
¦a¤è¡A¸Ó¬yµ{´X¥G¤£»Ýn§ïÅÜ´N¯à¹F¨ì¥Øªº¡C¡^
¤Þ¥Î STL ªº¤è¦¡
°ò¥»¤W STL ¬JµM¬O template¡A©Ò¥H¥¦©Ò¦³ªº source code ¥þ³¡¥i¥H¦b§A
Include ¥¦ªºÀɮ׸̱§ä¨ì¡C
Include STL ªº¼Ð·Ç¦p¤U¡G
1. ÀɮצW¤£§t .h
2. ¤£¦Pªº¸ê®Æ®e¾¹¦s©ñ¦b¤£¦P¦WºÙªºÀÉ®×
3. §A¥i¥H¦b function ¸Ì±§ä¨ì¤@¨Ç±¥Îªº function ¦p max ()
4. §A¥i¥H¦b algorithm ¸Ì±§ä¨ì©Ò¦³ STL ´£¨Ñªººtºâªk
5. STL ªº namespace ¬° std¡A¦pªG¨S¦³¨Ï¥Î using namespace std;
§An¦b¨Ï¥Îªº template «e±¥[¤W std:: ¤~¦æ
¸ê®Æµ²ºcªºÂkÃþ
¥Ø«e STL ©Ò´£¨Ñªº¸ê®Æ®e¾¹¡A±`¥Îªº¦³
list¡Bvector¡Bdeque¡Bstack¡Bset¡Bmap¡Bmultiset»Pmultimap¡C´X¥G§A·Qn¥Î¨ìªº¸ê®Æµ²ºc³£¥i¥H¥Î³o´XÃþ¥N´À¡C
°ò¥»¤W vector ±¥Î¨Ó¥N´À array ¡A¦Ó¥B¬O¤@ºØ¤£¨îªø«×ªº array¡C¸ò vector
¤@¼ËªºÁÙ¦³ deque ¡A©Ò¤£¦Pªº¬O vector ¥u¯à±q³Ì«á±¼W¥[»P§R°£¸ê®Æ¡Adeque
«h¨ì³B³£¥i¥H¡C
¦Ó set¡Bmap¡Bmultiset»Pmultimap
°ò¥»¤W³£¬O¨Ï¥Î¤F¬õ¶Â¾ð¸ê®Æµ²ºc©Ò°µ¦¨ªº¡A°ò¥»¤W³o¨ÇªF¦è¦s¨ú¸ê®Æªº³t«×³£¬O¥H
lgN ªº³t«×pºâªº¡C
³o¨Ç¸ê®Æ®e¾¹¤j³£¨ã¦³ªº member functions
1. iterator begin () ¶Ç¦^«ü¦V²Ä¤@µ§¸ê®Æªº«ü¦V¾¹
2. iterator end () ¶Ç¦^·íµ²§À¥Îªº«ü¦V¾¹
3. reverse_iterator rbegin () ¶Ç¦^«ü¦V¤Ï¤è¦V²Ä¤@µ§¸ê®Æªº¤Ï¦V«ü¦V¾¹
4. reverse_iterator rend () ¶Ç¦^¤Ï¤è¦V¦s¨ú·íµ²§À¥Îªº¤Ï¦V«ü¦V¾¹
5. bool empty () ¥Î¨ÓÀˬd¸ê®Æ®e¾¹¬O§_¬OªÅªº
6. int size () ¶Ç¦^¸ê®Æ®e¾¹¤º¦s©ñ¸ê®ÆÓ¼Æ¡]Ãö©ó³oÂI±¦³»~·|¡^
7. void clear ()
²M°£©Ò¦³¦s©ñ¸ê®Æ¡]³oÓ¤]¬O¸g±¦³»~·|ªº¦a¤è¡^¡A¨Ï¥Î§¹«á·|¨Ï©Ò¦³ÄÝ©ó³oÓ®e¾¹ªº«ü¦ì¾¹¥¢®Ä
8. iterator find (value_type &x) ´M§ä»P x ¬Ûµ¥ªº¸ê®Æ¨Ã¶Ç¦^«ü¦V¥¦ªº«ü¦V¾¹
9. void remove (value_type &x) ²¾°£»P x
¬Ûµ¥ªº¸ê®Æ¡A¨Ï¥Î«á·|¨Ï±o©Ò¦³ÄÝ©ó³oÓ®e¾¹