ไลบรารีแม่แบบมาตรฐาน (อังกฤษ: Standard Template Library / STL) เป็นไลบรารีของภาษาซีพลัสพลัส ประกอบไปด้วยคลาสของขั้นตอนวิธี (โครงสร้างข้อมูลและ) และ ไลบรารีแม่แบบมาตรฐานของ ISO C++ ได้อ้างอิงตามไลบรารีแม่แบบมาตรฐานของ Silicon Graphics (SGI)[]
ส่วนประกอบ
คอนเทนเนอร์
คอนเทนเนอร์ คือโครงสร้างข้อมูลและชนิดข้อมูล ประกอบไปด้วยรายการลำดับ ได้แก่ vector
deque
list
คอนเทนเนอร์แบบจับคู่ ได้แก่ set
multiset
map
multimap
คอนเทนเนอร์ดัดแปลงได้แก่ priority_queue
queue
stack
และคอนเทนเนอร์ประเภทอื่นๆ
คอนเทนเนอร์ | ชื่อภาษาอังกฤษ | รายละเอียด |
---|---|---|
คอนเทนเนอร์อย่างง่าย | ||
คู่อันดับ | pair | คู่อันดับ เป็นคอนเทนเนอร์อย่างง่าย เป็นคู่อันดับของวัตถุซึ่งเรียกว่า first และ second คู่อันดับสามารถกำหนดค่า คัดลอกค่า และเปรียบเทียบได้ คอนเทนเนอร์คู่อันดับนี้มีลักษณะคล้ายคู่อันดับในคณิตศาสตร์ สำหรับคอนเทนเนอร์ map และ hash_map (รายละเอียดอยู่ด้านล่าง) ข้อมูลแต่ละตัวจะเป็นคู่อันดับ โดยที่ first เป็นคีย์ ส่วน second เป็นข้อมูล |
รายการลำดับ | ||
เวกเตอร์ | vector | เป็นแถวลำดับที่สามารถปรับขนาดได้ มีความสามารถการเข้าถึงโดยสุ่ม เหมือนอาเรย์ทั่วไป แต่สามารถปรับขนาดได้เมื่อมีการเพิ่มหรือลดข้อมูล โดยทั่วไป เวกเตอร์ จะทำการจองพื้นที่มากกว่าข้อมูลที่มีอยู่ เมื่อมีการเพิ่มข้อมูลจนเต็ม เวกเตอร์ก็จะทำการของพื้นที่เพิ่มเป็น 2 เท่าของพื้นที่เดิม การกระทำเช่นนี้เมื่อออกมาแล้วจะได้ว่าการเพิ่ม/ลดข้อมูลในแต่ละครั้งทางปลายด้านหลัง ใช้ (ส่วนการเพิ่ม/ลบข้อมูล ณ ตำแหน่งใดๆใช้เวลาแปรผันตามจำนวนข้อมูล) สำหรับ เวกเตอร์ ของชนิดข้อมูลแบบบูล จะมีการปรับแต่งให้ใช้เนื้อที่เพียงแค่ 1 บิตต่อสมาชิก 1 ตัวเท่านั้น |
รายการโยง | list | เป็นรายการโยง 2 ทาง สมาชิกแต่ละตัวไม่ได้มีพื้นที่ในหน่วยความจำติดกันเหมือนกับอาเรย์ มีประสิทธิภาพตรงกันข้ามกับอาเรย์ กล่าวคือ การเข้าถึงข้อมูลใช้เวลาแปรผันตามจำนวนข้อมูล แต่การเพิ่ม/ลบข้อมูล ณ ตำแหน่งใดๆใช้เวลาคงตัว |
แถวคอยสองหน้า | deque | เหมือนรายการโยง สามารถเข้าถึงข้อมูลและเพิ่ม / ลบข้อมูลที่ปลายทั้งด้านหน้าและด้านหลังได้ภายในเวลาคงตัว |
คอนเทนเนอร์ดัดแปลง | ||
แถวคอย | queue | เป็นคอนเทนเนอร์ที่มีลักษณะแบบ สามารถเพิ่มข้อมูลทางด้านหลัง และนำข้อมูลออกทางด้านหน้า |
แถวคอยลำดับความสำคัญ | priority_queue | เป็นแถวคอยซึ่งมีการเรียงโดยอัตโนมัติ ข้อมูลที่สำคัญที่สุดจะอยู่บนสุดและจะถูกนำเอาออกเป็นอันดับแรก |
กองซ้อน | stack | เป็นคอนเทนเนอร์แบบ สามารถเพิ่มข้อมูลทางด้านหลัง และนำข้อมูลออกทางด้านหลังด้วยเช่นกัน |
คอนเทนเนอร์แบบจับคู่ | ||
เซต | set | เป็นคอนเทนเนอร์ชนิดหนึ่งที่สมาชิกห้ามซ้ำกัน มีความสามารถเหมือนเซต กล่าวคือสามารถยูเนียน อินเตอร์เซกชัน หา หา และทดสอบการเป็นสมาชิกได้ โดยปกติจะอิมพลีเมนต์เซตด้วยต้นไม้ค้นหาแบบทวิภาคที่มีโครงสร้างปรับสมดุลเองได้ ดังนั้นจึงจำเป็นที่ข้อมูลจะต้องสามารถถูกเปรียบเทียบได้ (ด้วย < หรือการกำหนดฟังก์ชันเปรียบเทียบ) นอกจากนี้ข้อมูลยังต้องมีลักษณะ ไม่เช่นนั้นอาจทำให้เกิดข้อผิดพลาดขึ้นได้ |
(มัลติเซต) | multiset | เหมือนเซต แต่สมาชิกมีข้อมูลซ้ำกันได้ |
แมพ | map | เป็นแถวลำดับแบบจับคู่ ซึ่งสามารถจับคู่จากคีย์ไปยังข้อมูลได้ ดังนั้นคีย์จึงห้ามซ้ำกัน ข้อมูลจะถูกเก็บเป็นคู่อันดับโดยที่ first เป็นคีย์ ส่วน second เป็นข้อมูล เช่นเดียวกับเซต แมพอิมพลีเมนต์โดยใช้ต้นไม้ค้นหาแบบทวิภาคที่มีโครงสร้างปรับสมดุลเองได้ ดังนั้นจึงจำเป็นที่ข้อมูลจะต้องสามารถถูกเปรียบเทียบได้ (ด้วย < หรือการกำหนดฟังก์ชันเปรียบเทียบ) นอกจากนี้ข้อมูลยังต้องมีลักษณะ ไม่เช่นนั้นอาจทำให้เกิดข้อผิดพลาดขึ้นได้ |
มัลติแมพ | multimap | เหมือนแมพ แต่มีคีย์ซ้ำกันได้ |
แฮชเซต แฮชมัลติเซต แฮชแมพ แฮชมัลติแมพ | hash_set hash_multiset hash_map hash_multimap | คล้ายเซต มัลติเซต แมพ มัลติแมพ แต่การอิมพลีเมนต์กลับใช้ตารางแฮชแทนต้นไม้ค้นหาแบบทวิภาคที่มีโครงสร้างปรับสมดุลเองได้ ซึ่งในตารางแฮช คีย์จะไม่เรียง และไม่จำเป็นต้องมีเพื่อเปรียบเทียบข้อมูลด้วย แต่ต้องการฟังก์ชันแฮชแทน ข้อได้เปรียบของการใช้ตารางแฮชแทนคือสามารถเข้าถึงข้อมูลโดยคาดหวังให้ใช้เวลาคงที่ได้ คอนเทนเนอร์เหล่านี้ไม่ได้รวมอยู่ในมาตรฐานภาษาซีพลัสพลัส แต่อยู่ในแม่แบบมาตรฐานของ SGI สำหรับ ซึ่งจะเป็นมาตรฐานภาษาซีพลัสพลัสรุ่นใหม่มีการใช้ unordered_set , unordered_multiset , unordered_map และ unordered_multimap แทนแฮชเซต, แฮชมัลติเซต, แฮชแมพ และแฮชมัลติแมพ ตามลำดับ |
คอนเทนเนอร์ประเภทอื่นๆ | ||
บิตเซต | bitset | รอการเพิ่มข้อมูล |
valarray | valarray | รอการเพิ่มข้อมูล |
ตัววนซ้ำ
ส่วนนี้รอเพิ่มเติมข้อมูล คุณสามารถช่วยเพิ่มข้อมูลส่วนนี้ได้ |
ขั้นตอนวิธี
ส่วนนี้รอเพิ่มเติมข้อมูล คุณสามารถช่วยเพิ่มข้อมูลส่วนนี้ได้ |
ฟังก์เตอร์
ส่วนนี้รอเพิ่มเติมข้อมูล คุณสามารถช่วยเพิ่มข้อมูลส่วนนี้ได้ |
ประวัติ
ส่วนนี้รอเพิ่มเติมข้อมูล คุณสามารถช่วยเพิ่มข้อมูลส่วนนี้ได้ |
อ้างอิง
- Holzner, Steven (2001). C++ : Black Book. Scottsdale, Ariz.: Coriolis Group. p. 648. ISBN .
The STL is made up of containers, iterators, function objects, and algorithms
แหล่งข้อมูลอื่น
wikipedia, แบบไทย, วิกิพีเดีย, วิกิ หนังสือ, หนังสือ, ห้องสมุด, บทความ, อ่าน, ดาวน์โหลด, ฟรี, ดาวน์โหลดฟรี, mp3, วิดีโอ, mp4, 3gp, jpg, jpeg, gif, png, รูปภาพ, เพลง, เพลง, หนัง, หนังสือ, เกม, เกม, มือถือ, โทรศัพท์, Android, iOS, Apple, โทรศัพท์โมบิล, Samsung, iPhone, Xiomi, Xiaomi, Redmi, Honor, Oppo, Nokia, Sonya, MI, PC, พีซี, web, เว็บ, คอมพิวเตอร์
ilbrariaemaebbmatrthan xngkvs Standard Template Library STL epnilbrarikhxngphasasiphlsphls prakxbipdwykhlaskhxngkhntxnwithi okhrngsrangkhxmulaela aela ilbrariaemaebbmatrthankhxng ISO C idxangxingtamilbrariaemaebbmatrthankhxng Silicon Graphics SGI txngkarxangxing swnprakxbkhxnethnenxr khxnethnenxr khuxokhrngsrangkhxmulaelachnidkhxmul prakxbipdwyraykarladb idaek span class n vector span span class n deque span span class n list span khxnethnenxraebbcbkhu idaek span class n set span span class n multiset span span class n map span span class n multimap span khxnethnenxrddaeplngidaek span class n priority queue span span class n queue span span class n stack span aelakhxnethnenxrpraephthxun khxnethnenxr chuxphasaxngkvs raylaexiydkhxnethnenxrxyangngaykhuxndb pair khuxndb epnkhxnethnenxrxyangngay epnkhuxndbkhxngwtthusungeriykwa first aela second khuxndbsamarthkahndkha khdlxkkha aelaepriybethiybid khxnethnenxrkhuxndbnimilksnakhlaykhuxndbinkhnitsastr sahrbkhxnethnenxr map aela hash map raylaexiydxyudanlang khxmulaetlatwcaepnkhuxndb odythi first epnkhiy swn second epnkhxmulraykarladbewketxr vector epnaethwladbthisamarthprbkhnadid mikhwamsamarthkarekhathungodysum ehmuxnxaerythwip aetsamarthprbkhnadidemuxmikarephimhruxldkhxmul odythwip ewketxr cathakarcxngphunthimakkwakhxmulthimixyu emuxmikarephimkhxmulcnetm ewketxrkcathakarkhxngphunthiephimepn 2 ethakhxngphunthiedim karkrathaechnniemuxxxkmaaelwcaidwakarephim ldkhxmulinaetlakhrngthangplaydanhlng ich swnkarephim lbkhxmul n taaehnngidichewlaaeprphntamcanwnkhxmul sahrb ewketxr khxngchnidkhxmulaebbbul camikarprbaetngihichenuxthiephiyngaekh 1 bittxsmachik 1 twethannraykaroyng list epnraykaroyng 2 thang smachikaetlatwimidmiphunthiinhnwykhwamcatidknehmuxnkbxaery miprasiththiphaphtrngknkhamkbxaery klawkhux karekhathungkhxmulichewlaaeprphntamcanwnkhxmul aetkarephim lbkhxmul n taaehnngidichewlakhngtwaethwkhxysxnghna deque ehmuxnraykaroyng samarthekhathungkhxmulaelaephim lbkhxmulthiplaythngdanhnaaeladanhlngidphayinewlakhngtwkhxnethnenxrddaeplngaethwkhxy queue epnkhxnethnenxrthimilksnaaebb samarthephimkhxmulthangdanhlng aelanakhxmulxxkthangdanhnaaethwkhxyladbkhwamsakhy priority queue epnaethwkhxysungmikareriyngodyxtonmti khxmulthisakhythisudcaxyubnsudaelacathuknaexaxxkepnxndbaerkkxngsxn stack epnkhxnethnenxraebb samarthephimkhxmulthangdanhlng aelanakhxmulxxkthangdanhlngdwyechnknkhxnethnenxraebbcbkhuest set epnkhxnethnenxrchnidhnungthismachikhamsakn mikhwamsamarthehmuxnest klawkhuxsamarthyueniyn xinetxreskchn ha ha aelathdsxbkarepnsmachikid odypkticaximphliemntestdwytnimkhnhaaebbthwiphakhthimiokhrngsrangprbsmdulexngid dngnncungcaepnthikhxmulcatxngsamarththukepriybethiybid dwy span class o lt span hruxkarkahndfngkchnepriybethiyb nxkcaknikhxmulyngtxngmilksna imechnnnxacthaihekidkhxphidphladkhunidmltiest multiset ehmuxnest aetsmachikmikhxmulsaknidaemph map epnaethwladbaebbcbkhu sungsamarthcbkhucakkhiyipyngkhxmulid dngnnkhiycunghamsakn khxmulcathukekbepnkhuxndbodythi first epnkhiy swn second epnkhxmul echnediywkbest aemphximphliemntodyichtnimkhnhaaebbthwiphakhthimiokhrngsrangprbsmdulexngid dngnncungcaepnthikhxmulcatxngsamarththukepriybethiybid dwy span class o lt span hruxkarkahndfngkchnepriybethiyb nxkcaknikhxmulyngtxngmilksna imechnnnxacthaihekidkhxphidphladkhunidmltiaemph multimap ehmuxnaemph aetmikhiysaknidaehchest aehchmltiest aehchaemph aehchmltiaemph hash set hash multiset hash map hash multimap khlayest mltiest aemph mltiaemph aetkarximphliemntklbichtarangaehchaethntnimkhnhaaebbthwiphakhthimiokhrngsrangprbsmdulexngid sungintarangaehch khiycaimeriyng aelaimcaepntxngmiephuxepriybethiybkhxmuldwy aettxngkarfngkchnaehchaethn khxidepriybkhxngkarichtarangaehchaethnkhuxsamarthekhathungkhxmulodykhadhwngihichewlakhngthiid khxnethnenxrehlaniimidrwmxyuinmatrthanphasasiphlsphls aetxyuinaemaebbmatrthankhxng SGI sahrb C 11 sungcaepnmatrthanphasasiphlsphlsrunihmmikarich span class n unordered set span span class n unordered multiset span span class n unordered map span aela span class n unordered multimap span aethnaehchest aehchmltiest aehchaemph aelaaehchmltiaemph tamladbkhxnethnenxrpraephthxunbitest bitset rxkarephimkhxmulvalarray valarray rxkarephimkhxmul twwnsa swnnirxephimetimkhxmul khunsamarthchwyephimkhxmulswnniid khntxnwithi swnnirxephimetimkhxmul khunsamarthchwyephimkhxmulswnniid fngketxr swnnirxephimetimkhxmul khunsamarthchwyephimkhxmulswnniidprawtiswnnirxephimetimkhxmul khunsamarthchwyephimkhxmulswnniidxangxingHolzner Steven 2001 C Black Book Scottsdale Ariz Coriolis Group p 648 ISBN 1 57610 777 9 The STL is made up of containers iterators function objects and algorithmsaehlngkhxmulxunwikitaramikhumuxinhwkhx ilbrariaemaebbmatrthan bthkhwamniyngepnokhrng khunsamarthchwywikiphiediyidodykarephimetimkhxmul hmayehtu khxaenanaihcdhmwdhmuokhrngihekhakbenuxhakhxngbthkhwam duephimthi wikiphiediy okhrngkarcdhmwdhmuokhrngthiyngimsmburn dkhk