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

C ++ เป็นภาษาโปรแกรมทั่วไป เดิมได้รับการออกแบบให้เป็นส่วนขยายของ C และมีไวยากรณ์ที่คล้ายกัน แต่ตอนนี้มันเป็นภาษาที่แตกต่างอย่างสิ้นเชิง ใช้แท็กนี้สำหรับคำถามเกี่ยวกับรหัส (จะ) คอมไพล์ด้วยคอมไพเลอร์ C ++ ใช้แท็กเฉพาะรุ่นสำหรับคำถามที่เกี่ยวข้องกับการแก้ไขมาตรฐานเฉพาะ [C ++ 11], [C ++ 14], [C ++ 17] หรือ [C ++ 20] เป็นต้น

1
GCC และ g ++ bootstrapped เป็นอย่างไร
สิ่งนี้ได้ดักฟังฉันมาระยะหนึ่งแล้ว GCC และ g ++ รวบรวมตัวเองอย่างไร ฉันเดาว่าการแก้ไขทุกครั้งจะได้รับการคอมไพล์ด้วยการแก้ไขที่สร้างไว้ก่อนหน้านี้ มันเป็นเรื่องจริงเหรอ? และถ้าเป็นเช่นนั้นหมายความว่ารุ่นเก่าที่สุดของ g ++ และ GCC ถูกเขียนไว้ในชุดประกอบหรือไม่?

6
การอ้างอิงที่ไม่ได้กำหนดถึง constexpr แบบคงที่ []
ฉันต้องการstatic const charอาร์เรย์ในชั้นเรียนของฉัน GCC บ่นและบอกว่าฉันควรใช้constexprถึงแม้ว่าตอนนี้มันจะบอกฉันว่ามันเป็นข้อมูลอ้างอิงที่ไม่ได้กำหนด ถ้าฉันทำให้อาร์เรย์ไม่ใช่สมาชิกแล้วมันจะรวบรวม เกิดอะไรขึ้น? // .hpp struct foo { void bar(); static constexpr char baz[] = "quz"; }; // .cpp void foo::bar() { std::string str(baz); // undefined reference to baz }

14
คอนเทนเนอร์ STL หรือ Qt
ข้อดีและข้อเสียของการใช้ Qt container QMapคืออะไรQVectorฯลฯ ) มากกว่าเทียบเท่า STL ของพวกเขา? ฉันเห็นเหตุผลข้อหนึ่งที่ชอบ Qt: คอนเทนเนอร์ Qt สามารถส่งผ่านไปยังส่วนอื่น ๆ ของ Qt ตัวอย่างเช่นพวกเขาสามารถใช้ในการเติมQVariantและจากนั้นQSettings(มีข้อ จำกัด บางอย่างเท่านั้นQListและQMap/ QHashซึ่งมีกุญแจเป็นสายได้รับการยอมรับ) มีอะไรอีกบ้าง? แก้ไข : สมมติว่าแอปพลิเคชันนั้นขึ้นอยู่กับ Qt
185 c++  qt  stl 

4
std :: auto_ptr ถึง std :: unique_ptr
กับมาตรฐานใหม่ที่มา (และชิ้นส่วนอยู่แล้วในบางคอมไพเลอร์) รูปแบบใหม่ควรจะเป็นแทน std::unique_ptrstd::auto_ptr การใช้งานของพวกเขาทับซ้อนกันหรือไม่ (เพื่อให้ฉันสามารถค้นหา / แทนที่ทั่วโลกบนโค้ดของฉัน (ไม่ใช่ว่าฉันจะทำสิ่งนี้ แต่ถ้าฉันทำ)) หรือฉันควรตระหนักถึงความแตกต่างที่ไม่ชัดเจนจากการอ่านเอกสาร? นอกจากนี้ถ้ามันเป็นแทนโดยตรงทำไมให้มันชื่อใหม่มากกว่าแค่การปรับปรุงstd::auto_ptr?

12
mmap () เทียบกับการอ่านบล็อค
ฉันกำลังทำงานกับโปรแกรมที่กำลังประมวลผลไฟล์ที่อาจมีขนาด 100GB ขึ้นไป ไฟล์มีชุดของบันทึกความยาวแปรผัน ฉันได้ติดตั้งและใช้งานเป็นครั้งแรกและตอนนี้ฉันกำลังมองไปที่การปรับปรุงประสิทธิภาพโดยเฉพาะอย่างยิ่งในการทำ I / O ที่มีประสิทธิภาพมากขึ้นเนื่องจากไฟล์อินพุตได้รับการสแกนหลายครั้ง มีกฎง่ายๆในการใช้mmap()กับการอ่านในบล็อกผ่านfstreamห้องสมุดของ C ++ ? สิ่งที่ฉันต้องการจะทำคืออ่านบล็อกขนาดใหญ่จากดิสก์ไปยังบัฟเฟอร์ประมวลผลระเบียนที่สมบูรณ์จากบัฟเฟอร์แล้วอ่านเพิ่มเติม mmap()รหัสอาจจะได้รับมากยุ่งตั้งแต่mmap'd บล็อกต้องนอนบนหน้าขอบเขตขนาด (ความเข้าใจของฉัน) และมีการบันทึกอาจเหมือนข้ามเขตแดนหน้า ด้วยfstreams ฉันสามารถค้นหาจุดเริ่มต้นของการบันทึกและเริ่มอ่านอีกครั้งเนื่องจากเราไม่ จำกัด เฉพาะการอ่านบล็อกที่วางอยู่บนขอบเขตขนาดหน้า ฉันจะตัดสินใจเลือกระหว่างสองตัวเลือกนี้ได้อย่างไร กฎของหัวแม่มือใด ๆ (เช่นmmap()เร็วกว่า 2x) หรือการทดสอบอย่างง่าย?
185 c++  file-io  fstream  mmap 

14
ควรใช้ฟังก์ชั่นอินไลน์เมื่อใดและจะไม่ใช้เมื่อใด
ฉันรู้ว่าอินไลน์เป็นคำใบ้หรือคำขอให้คอมไพเลอร์และมันใช้เพื่อหลีกเลี่ยงค่าใช้จ่ายในการโทรฟังก์ชั่น ดังนั้นสิ่งที่พื้นฐานหนึ่งสามารถกำหนดได้ว่าฟังก์ชั่นเป็นตัวเลือกสำหรับการอินไลน์หรือไม่? ในกรณีใดที่หนึ่งควรหลีกเลี่ยงการอินไลน์
185 c++  c  inline 

7
ไลบรารี C ++ สมัยใหม่ควรมีอะไรในกล่องเครื่องมือของฉัน [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันออกจากเกม C ++ มาประมาณ 10 ปีแล้วและฉันต้องการกลับเข้ามาใหม่และเริ่มแอพเชิงพาณิชย์ วันนี้มีห้องสมุดใดที่ใช้อยู่ ส่วนต่อประสานผู้ใช้ (เช่นwxWidgets , Qt ) ฐานข้อมูล วัตถุประสงค์ทั่วไป (เช่นBoost , Loki , STL) Threading การทดสอบ เครือข่าย / ซ็อกเก็ต ฉันกำลังมองหาการใช้งานข้ามแพลตฟอร์มได้ (มากที่สุดเท่าที่จะเป็นไปได้) คุณต้องพึ่งพาห้องสมุดอะไร พวกเขามีคุณสมบัติอะไรที่ทำให้พวกเขา"ขาดไม่ได้" ? ดูคำตอบของฉันด้านล่างเพื่อรับข้อมูลสรุป
185 c++ 

10
ฉันจะใช้คอนเทนเนอร์ STL ใดในสถานการณ์ใด
ฉันอ่านค่า STL ในหนังสือของฉันบน C ++ โดยเฉพาะในส่วนของ STL และคอนเทนเนอร์ ตอนนี้ฉันเข้าใจแต่ละคนทุกคนมีคุณสมบัติเฉพาะของตัวเองและฉันใกล้จะจดจำพวกเขาทั้งหมด ... แต่สิ่งที่ฉันยังไม่เข้าใจคือสิ่งที่พวกเขาใช้ คำอธิบายคืออะไร รหัสตัวอย่างเป็นที่ต้องการมาก

4
ไม่สามารถใช้โมดูลัสกับคู่ผสมได้หรือไม่
ฉันมีโปรแกรมใน C ++ (เรียบเรียงโดยใช้ g ++) ฉันพยายามที่จะใช้สองคู่เป็นตัวถูกดำเนินการกับฟังก์ชั่นโมดูลัส แต่ฉันได้รับข้อผิดพลาดต่อไปนี้: ข้อผิดพลาด: ตัวถูกดำเนินการที่ไม่ถูกต้องของประเภท 'double' และ 'double' เป็นไบนารี 'โอเปอเรเตอร์%' นี่คือรหัส: int main() { double x = 6.3; double y = 2; double z = x % y; }
185 c++  modulo 



5
ผ่านอาร์เรย์โดยอ้างอิง
การส่งผ่านอาร์เรย์ที่จัดสรรแบบคงที่โดยการอ้างอิงทำงานอย่างไร void foo(int (&myArray)[100]) { } int main() { int a[100]; foo(a); } ไม่(&myArray)[100]ได้มีความหมายใด ๆ หรือเพียงแค่ไวยากรณ์ของมันจะผ่านอาร์เรย์ใด ๆ โดยการอ้างอิง? ฉันไม่เข้าใจวงเล็บแยกตามด้วยวงเล็บใหญ่ที่นี่ ขอบคุณ
184 c++  arrays 


30
บล็อก C ++ ที่คุณติดตามเป็นประจำ? [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ บล็อก C ++ ทั้งหมดที่คุณติดตามมีอะไรบ้าง โปรดเพิ่มหนึ่ง URL สำหรับการโพสต์เดียว
183 c++  blogs 

14
อัลกอริทึมเร็วที่สุดในการค้นหาหมายเลขเฉพาะคืออะไร
อัลกอริทึมที่เร็วที่สุดในการค้นหาหมายเลขเฉพาะด้วย C ++ คืออะไร ฉันใช้อัลกอริทึมของตะแกรง แต่ฉันยังต้องการให้เร็วขึ้น!
183 c++  algorithm  primes 

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.