ฉันรู้ว่ามันสายไปงานปาร์ตี้ แต่การเปลี่ยนแปลงเวลาและคำตอบอยู่รอบ ๆ C ++ 11 มีการเปลี่ยนแปลงอย่างรวดเร็วซึ่งส่วนใหญ่เป็นการเพิ่มประสิทธิภาพของ C ++ และไลบรารี่มาตรฐาน ดูเหมือนว่าคนที่ไม่ได้ใช้ STL หรือ Boost มีแนวโน้มที่จะไม่ทำตามมาตรฐานใหม่อย่างใดอย่างหนึ่งออกจากการแก้ปัญหาการปั่นที่บ้านขาดการปรับปรุงที่สำคัญแน่นอนว่านี่ไม่ใช่กรณี
ฉันใช้ STL ในทุกโครงการตั้งแต่ช่วงกลางยุค 90 จนถึงปัจจุบันยกเว้นช่วงเวลาสั้น ๆ ที่ EA ฉันคิดว่าฝ่ายต่อต้าน STL มีเหตุผลบางอย่างที่ไม่ควรใช้ ส่วนใหญ่จะหายไป ตัวจัดสรรแบบกำหนดเองเป็นวิธีการหนึ่งโดยใช้การสำรองเป็นอีกวิธีหนึ่งและไม่ผ่านสิ่งต่าง ๆ ตามค่าคือหนึ่งในสาม แต่สิ่งเหล่านี้ค่อนข้างเรียบง่ายและโปรแกรมเมอร์ทุกคนควรรู้สิ่งเหล่านี้ ที่สำคัญกว่านั้นคือการใช้อัลกอริทึม ผู้เขียนคอมไพเลอร์รู้อย่างแน่นอนว่า for_each () ทำอะไรและสามารถปรับรหัสให้เหมาะสม ที่ไม่สามารถเกิดขึ้นได้กับการวนกลับบ้าน for_each () บนวัตถุ const ดียิ่งขึ้น Microsoft เพิ่มประสิทธิภาพ for_each ในหลาย ๆ วิธีรวมถึงการทำให้เป็นอนุกรม พวกเขายังมีห้องสมุด AMP ซึ่งมี parallel_for_each () หากคุณมีโอกาสพูดคุยกับวิศวกรคอมไพเลอร์เกี่ยวกับเรื่องนี้ คอมไพเลอร์ของคอนโซลจะปรับสิ่งที่ได้ใช้ให้เหมาะสมดังนั้น เป็นปัญหาไก่และไข่ Microsoft กำลังหนักมากด้วย C ++ 11 และ XBox ถัดไปจะไม่แตกต่างกัน ฉันไม่รู้เกี่ยวกับ PS4 เรายังไม่ได้รับ
ตัวจัดสรรแบบกำหนดเองเป็นวิธีหนึ่งในการจัดการกับปัญหาหน่วยความจำ แต่ตัวเลือกอื่น (มักถูกมองข้าม) คือการใช้คลาสใหม่และลบ การเพิ่มประสิทธิภาพอย่างมากสามารถทำได้ด้วยวิธีนี้
แนวคิดที่ว่า Boost และ STL มีมุมมองที่แคบในการแก้ปัญหาคือความวิกลจริตอย่างแท้จริง ฉันตกตะลึงกับสิ่งต่าง ๆ ใน STL และ Boost ที่สามารถปรับแต่งได้ตามลักษณะและนโยบาย มองหาการเปรียบเทียบสตริงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่เป็นตัวอย่าง
เกี่ยวกับเวลาเชื่อมโยงที่ยาวนานและการขยายโค้ดเทมเพลต externใหม่ควรช่วยในเรื่องนี้ โดยทั่วไปฉันพบว่าเวลาในการคอมไพล์นานมาจากการมีเพศสัมพันธ์มากเกินไปและการใช้ pch ในทางที่ผิด
เหตุผลที่น่าสนใจที่สุดในการใช้ STL เหนือบ้านคือมีคนหลายล้านคนที่สามารถช่วยเหลือ STL ให้คุณ เช่นเคยอย่าเพิ่มประสิทธิภาพก่อนเวลาอันควรและทดสอบทดสอบทดสอบ