12
เหตุใดการใช้ tuples ใน C ++ จึงไม่ธรรมดา
เหตุใดจึงดูเหมือนไม่มีใครใช้ tuples ใน C ++ ทั้งBoost Tuple Libraryหรือไลบรารีมาตรฐานสำหรับ TR1 ฉันอ่านโค้ด C ++ มาเยอะแล้วและไม่ค่อยเห็นการใช้ทูเปิล แต่ฉันมักจะเห็นสถานที่มากมายที่ทูเปิลสามารถแก้ปัญหาต่างๆได้ (โดยปกติจะคืนค่าหลายค่าจากฟังก์ชัน) Tuples ช่วยให้คุณทำสิ่งดีๆได้ทุกประเภทเช่นนี้: tie(a,b) = make_tuple(b,a); //swap a and b ที่ดีกว่านี้อย่างแน่นอน: temp=a; a=b; b=temp; แน่นอนคุณสามารถทำได้เสมอ: swap(a,b); แต่ถ้าคุณต้องการหมุนสามค่าล่ะ? คุณสามารถทำสิ่งนี้ได้ด้วยสิ่งทอ: tie(a,b,c) = make_tuple(b,c,a); Tuples ยังช่วยให้สามารถส่งคืนตัวแปรหลายตัวจากฟังก์ชันได้ง่ายกว่ามากซึ่งอาจเป็นกรณีที่พบได้บ่อยกว่าการแลกเปลี่ยนค่า การใช้การอ้างอิงเพื่อส่งกลับค่าเป็นสิ่งที่ไม่สวยงามอย่างแน่นอน มีข้อบกพร่องใหญ่ ๆ สำหรับสิ่งที่ฉันไม่ได้นึกถึงหรือไม่? ถ้าไม่เป็นเช่นนั้นทำไมพวกเขาจึงไม่ค่อยใช้? ช้ากว่าไหม หรือว่าแค่คนไม่ชิน? เป็นความคิดที่ดีที่จะใช้ tuples หรือไม่?