คำถามติดแท็ก stl

10
อะไรคือจุดใช้ของรายการเหนือเวคเตอร์ใน C ++?
ฉันใช้การทดลอง 3 แบบที่เกี่ยวข้องกับรายการ C ++ และเวกเตอร์ ผู้ที่มีเวกเตอร์พิสูจน์ได้ว่ามีประสิทธิภาพมากขึ้นแม้ว่าจะมีการแทรกอยู่ตรงกลางจำนวนมาก ดังนั้นคำถาม: ในกรณีใดรายการที่มีเหตุผลมากกว่าเวคเตอร์? หากเวกเตอร์ดูเหมือนจะมีประสิทธิภาพมากขึ้นในกรณีส่วนใหญ่และพิจารณาว่าสมาชิกของพวกเขาเหมือนกันแล้วจะมีข้อได้เปรียบอะไรที่เหลืออยู่สำหรับรายการ? สร้างจำนวนเต็ม N และวางไว้ในคอนเทนเนอร์เพื่อให้คอนเทนเนอร์ยังคงเรียงลำดับ การแทรกได้รับการดำเนินการอย่างไร้เดียงสาโดยการอ่านองค์ประกอบทีละหนึ่งและแทรกใหม่ขวาก่อนที่จะมีขนาดใหญ่ขึ้นครั้งแรก ด้วยรายการเวลาจะผ่านหลังคาเมื่อมิติเพิ่มขึ้นเมื่อเทียบกับเวกเตอร์ แทรกจำนวนเต็ม N ที่ส่วนท้ายของคอนเทนเนอร์ สำหรับรายการและเวกเตอร์เวลาเพิ่มขึ้นตามลำดับความสำคัญเท่ากันแม้ว่ามันจะเร็วขึ้น 3 เท่าเมื่อใช้เวกเตอร์ แทรกจำนวนเต็ม N ในคอนเทนเนอร์ เริ่มจับเวลา เรียงลำดับคอนเทนเนอร์โดยใช้ list.sort สำหรับรายการและ std :: sort สำหรับเวกเตอร์ หยุดจับเวลา อีกครั้งเวลาเพิ่มขึ้นตามลำดับความสำคัญเท่ากัน แต่มันจะเร็วขึ้นโดยเฉลี่ย 5 เท่าด้วยเวกเตอร์ ฉันอาจทำการทดสอบต่อไปและหาตัวอย่างสองสามข้อที่รายการจะพิสูจน์ได้ดีขึ้น แต่ประสบการณ์ร่วมกันของพวกคุณที่อ่านข้อความนี้อาจให้คำตอบที่มีประสิทธิผลมากขึ้น คุณอาจเจอสถานการณ์ที่รายการใช้งานได้สะดวกกว่าหรือทำได้ดีกว่า

3
มีความแตกต่างอะไรระหว่างการใช้ struct และ std :: pair
ฉันเป็นโปรแกรมเมอร์ C ++ ที่มีประสบการณ์ จำกัด สมมติว่าฉันต้องการใช้STL mapเพื่อจัดเก็บและจัดการกับข้อมูลบางอย่างฉันต้องการทราบว่ามีความแตกต่างที่มีความหมาย (ในประสิทธิภาพ) ระหว่างโครงสร้างข้อมูล 2 วิธี: Choice 1: map<int, pair<string, bool> > Choice 2: struct Ente { string name; bool flag; } map<int, Ente> โดยเฉพาะมีค่าใช้จ่ายใด ๆ ที่ใช้structแทนง่ายpairหรือไม่

7
ควรหลีกเลี่ยง STL ในแอปพลิเคชันขนาดใหญ่หรือไม่
นี่อาจฟังดูเป็นคำถามแปลก ๆ แต่ในแผนกของฉันเรากำลังมีปัญหากับสถานการณ์ต่อไปนี้: เรากำลังทำงานที่นี่ในแอปพลิเคชันเซิร์ฟเวอร์ซึ่งกำลังขยายใหญ่ขึ้นเรื่อย ๆ แม้ในจุดที่เรากำลังพิจารณาที่จะแบ่งออกเป็นส่วนต่าง ๆ (ไฟล์ DLL) การโหลดแบบไดนามิกเมื่อจำเป็นและการขนถ่ายในภายหลังเพื่อให้สามารถจัดการได้ ปัญหาด้านประสิทธิภาพ แต่: ฟังก์ชั่นที่เราใช้กำลังผ่านพารามิเตอร์อินพุตและเอาต์พุตเป็นวัตถุ STL และตามที่กล่าวไว้ในคำตอบ Stack Overflowนี่เป็นความคิดที่แย่มาก (โพสต์นั้นมีวิธีแก้ปัญหาและแฮ็กบางอย่าง แต่ทั้งหมดนั้นดูไม่ค่อยจะแข็งนัก) เห็นได้ชัดว่าเราสามารถแทนที่พารามิเตอร์อินพุต / เอาต์พุตด้วยประเภท C ++ มาตรฐานและสร้างวัตถุ STL จากสิ่งที่อยู่ภายในฟังก์ชั่น แต่สิ่งนี้อาจทำให้ประสิทธิภาพลดลง สรุปว่าในกรณีที่คุณกำลังพิจารณาที่จะสร้างแอพพลิเคชั่นซึ่งอาจมีขนาดใหญ่ขึ้นซึ่งพีซีเครื่องเดียวไม่สามารถจัดการได้อีกต่อไปคุณจะต้องไม่ใช้ STL เป็นเทคโนโลยีเลย? พื้นหลังเพิ่มเติมเกี่ยวกับคำถามนี้: ดูเหมือนจะมีความเข้าใจผิดเกี่ยวกับคำถาม: ปัญหาคือสิ่งต่อไปนี้: แอปพลิเคชันของฉันใช้ประสิทธิภาพจำนวนมาก (CPU, หน่วยความจำ) ในการทำงานให้เสร็จและฉันต้องการแยกงานนี้ ออกเป็นส่วนต่าง ๆ (เนื่องจากโปรแกรมถูกแบ่งออกเป็นหลาย ๆ ฟังก์ชั่นแล้ว) มันไม่ยากเลยที่จะสร้าง DLLs ออกจากแอปพลิเคชั่นของฉันและวางฟังก์ชั่นบางอย่างในตารางการส่งออกของ DLL เหล่านั้น สิ่งนี้จะส่งผลในสถานการณ์ต่อไปนี้: +-----------+-----------+---- …
24 c++  stl 

3
QT-C ++ vs Generic C ++ และ STL [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา เคยแปรงฟันบน C ++ ของฉันเมื่อเร็ว ๆ นี้บน Ubuntu QQ ฉันชอบกรอบ Qt สำหรับทุกสิ่งโดยเฉพาะอย่างยิ่งการสร้าง GUI ฉันคุ้นเคยกับมันมากเมื่อใช้ PyQt ในช่วงไม่กี่ปีที่ผ่านมา เมื่อใช้ PyQt ฉันมีปัญหาบางอย่างที่ตอนนี้เด่นชัดมากขึ้นเมื่อใช้ C ++ กับ Qt: Qt มีส่วนขยายจำนวนมากเป็น C ++ ซึ่งเป็น Qt เฉพาะ - QString เป็นเพียงตัวอย่างทั่วไปไม่พูดถึงการรวบรวมขยะอัตโนมัติ เป็นไปได้ที่จะเขียนแอปพลิเคชัน Qt โดยใช้ C ++ โดยไม่ต้องรู้อะไรมากมายเกี่ยวกับ C …
19 c++  qt  stl  gtk  pyqt4 

6
เป็นประโยชน์หรือไม่ที่จะละทิ้ง STL ในการพัฒนา C ++? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน4 ปีที่แล้ว ฉันรู้ว่าในบางพื้นที่ (เช่นอุตสาหกรรมเกม) ไม่แนะนำให้ใช้ STL ดังนั้นคำถามของฉันคือจริง ๆ แล้วมันเป็นการปฏิบัติที่ดีที่จะไม่ใช้ STL ในบางกรณีหรือไม่? ถ้าเป็นเช่นนั้นเหตุผลที่ดีที่สุดที่ไม่ใช้ STL ของ C ++ สมัยใหม่คืออะไร
19 c++  stl 

1
std :: vector <bool> มาได้อย่างไร
ทุกวันนี้นักพัฒนา C ++ ทุกคนยอมรับว่าstd::vector&lt;bool&gt;มันเป็นความผิดพลาดเพราะมันไม่ใช่การหลอกลวงและกรณีการใช้งานของมันนั้นทับซ้อนกับสิ่งเหล่านั้นstd::bitsetอยู่ดี คะแนนเป็นมาตรฐานได้อย่างไร มันเป็นความขัดแย้งในเวลา? อะไรคือข้อโต้แย้งหลักที่สนับสนุน?
15 c++  history  stl 

5
วิธีการออกแบบข้อยกเว้น
ฉันกำลังดิ้นรนกับคำถามง่าย ๆ : ตอนนี้ฉันกำลังทำงานกับแอปพลิเคชันเซิร์ฟเวอร์และฉันต้องคิดค้นลำดับชั้นสำหรับข้อยกเว้น (มีข้อยกเว้นบางอย่างอยู่แล้ว แต่จำเป็นต้องใช้กรอบงานทั่วไป) ฉันจะเริ่มทำสิ่งนี้ได้อย่างไร ฉันกำลังคิดว่าจะทำตามกลยุทธ์นี้: 1) เกิดอะไรขึ้น? มีบางสิ่งถามซึ่งไม่ได้รับอนุญาต มีการถามอะไรบางอย่างอนุญาต แต่ไม่ทำงานเนื่องจากพารามิเตอร์ผิด มีการถามบางสิ่งอนุญาต แต่ไม่ทำงานเนื่องจากข้อผิดพลาดภายใน 2) ใครเป็นผู้เปิดตัวคำขอ? แอปพลิเคชันไคลเอนต์ แอปพลิเคชันเซิร์ฟเวอร์อื่น 3) การส่งข้อความ: เนื่องจากเรากำลังติดต่อกับแอปพลิเคชันเซิร์ฟเวอร์ทุกอย่างเกี่ยวกับการรับและส่งข้อความ แล้วถ้าเกิดว่าการส่งข้อความผิดพลาดล่ะ ดังนั้นเราอาจได้รับประเภทข้อยกเว้นดังต่อไปนี้: ServerNotAllowedException ClientNotAllowedException ServerParameterException ClientParameterException InternalException (ในกรณีที่เซิร์ฟเวอร์ไม่รู้ว่าคำขอมาจากไหน) ServerInternalException ClientInternalException MessageHandlingException นี่เป็นวิธีการทั่วไปในการกำหนดลำดับชั้นของข้อยกเว้น แต่ฉันกลัวว่าฉันอาจจะขาดบางกรณีที่ชัดเจน คุณมีความคิดเห็นเกี่ยวกับประเด็นที่ฉันไม่ครอบคลุมหรือไม่คุณทราบถึงข้อเสียของวิธีการนี้หรือมีวิธีการทั่วไปในการถามคำถามประเภทนี้ (ในกรณีหลังฉันจะหาได้ที่ไหน) ขอบคุณล่วงหน้า
11 design  c++  exceptions  stl 
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.