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

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

20
รูปแบบการออกแบบ C ++ Singleton
เมื่อเร็ว ๆ นี้ฉันได้พบกับการตระหนักถึง / การใช้รูปแบบการออกแบบซิงเกิลตันสำหรับ C ++ มันมีลักษณะเช่นนี้ (ฉันยอมรับมันจากตัวอย่างในชีวิตจริง): // a lot of methods are omitted here class Singleton { public: static Singleton* getInstance( ); ~Singleton( ); private: Singleton( ); static Singleton* instance; }; จากการประกาศนี้ฉันสามารถอนุมานได้ว่ามีการเริ่มต้นฟิลด์อินสแตนซ์บนฮีป นั่นหมายความว่ามีการจัดสรรหน่วยความจำ สิ่งที่ไม่ชัดเจนสำหรับฉันคือเมื่อหน่วยความจำจะถูกจัดสรรคืนหรือไม่ หรือมีข้อบกพร่องและหน่วยความจำรั่ว? ดูเหมือนว่ามีปัญหาในการใช้งาน คำถามหลักของฉันคือฉันจะใช้มันอย่างถูกวิธีได้อย่างไร



24
มาตรฐาน C ++ ระบุขนาดของ int, long type ที่จะเป็นอย่างไร
ฉันกำลังมองหาข้อมูลโดยละเอียดเกี่ยวกับขนาดของประเภท C ++ พื้นฐาน ฉันรู้ว่ามันขึ้นอยู่กับสถาปัตยกรรม (16 บิต, 32 บิต, 64 บิต) และคอมไพเลอร์ แต่มีมาตรฐานสำหรับ C ++ หรือไม่ ฉันใช้ Visual Studio 2008 บนสถาปัตยกรรม 32 บิต นี่คือสิ่งที่ฉันได้รับ: char : 1 byte short : 2 bytes int : 4 bytes long : 4 bytes float : 4 bytes double: 8 bytes ฉันพยายามที่จะหาไม่ประสบความสำเร็จมากข้อมูลที่เชื่อถือได้ระบุขนาดของchar, short, int, …
696 c++  c++-faq 

17
main () ควรส่งคืนใน C และ C ++ อย่างไร
เป็นวิธีที่ถูกต้อง (มีประสิทธิภาพมากที่สุด) วิธีการกำหนดmain()ฟังก์ชั่นใน C และ C ++ - int main()หรือvoid main()- และทำไม? หากint main()แล้วreturn 1หรือreturn 0? มีคำถามซ้ำหลายประการซึ่งรวมถึง: ลายเซ็นที่ถูกต้องสำหรับmain()ฟังก์ชั่นของ C คืออะไร? ประเภทการกลับมาของmain()ฟังก์ชั่น ความแตกต่างระหว่างvoid main()และint main()? main()ลายเซ็นของใน C ++ การประกาศที่เหมาะสมmain()คืออะไร? - สำหรับ C ++ พร้อมคำตอบที่ดีมากแน่นอน รูปแบบของmain()ฟังก์ชั่นใน C ส่งคืนชนิดของmain()วิธีการใน C int main()vs void main()ใน C ที่เกี่ยวข้อง: C ++ - int main(int argc, char …





4
ฉันจะประสบความสำเร็จสูงสุดทางทฤษฎีของ 4 FLOPs ต่อรอบได้อย่างไร
ประสิทธิภาพสูงสุดในเชิงทฤษฎีของการดำเนินการจุดลอย 4 จุด (ความแม่นยำสองเท่า) ต่อรอบสามารถทำได้บนซีพียู x86-64 ที่ทันสมัยของ Intel? เท่าที่ฉันเข้าใจมันใช้เวลาสามรอบสำหรับSSE addและห้ารอบเพื่อmulให้เสร็จสมบูรณ์บน CPU Intel ส่วนใหญ่ที่ทันสมัย ​​(ดูตัวอย่าง'Instruction Tables' ของ Agner Fog ) เนื่องจากการส่งไปป์ไลน์หนึ่งสามารถรับปริมาณงานหนึ่งaddต่อรอบหากอัลกอริทึมมีการสรุปอิสระอย่างน้อยสามครั้ง เนื่องจากเป็นจริงสำหรับแพ็กเกจaddpdรวมถึงaddsdรุ่นสเกลาร์และรีจิสเตอร์ SSE สามารถมีปริมาณงานสองdoubleรายการได้มากถึงสอง flops ต่อรอบ นอกจากนี้ดูเหมือนว่า (แม้ว่าฉันจะไม่เห็นเอกสารที่ถูกต้องเกี่ยวกับเรื่องนี้) addและmulสามารถดำเนินการในแบบคู่ขนานโดยให้ทรูพุตสูงสุดตามทฤษฎีของสี่ flops ต่อรอบ อย่างไรก็ตามฉันไม่สามารถจำลองประสิทธิภาพนั้นด้วยโปรแกรม C / C ++ อย่างง่าย ความพยายามที่ดีที่สุดของฉันส่งผลให้ประมาณ 2.7 flops / รอบ หากใครสามารถมีส่วนร่วม C / C ++ หรือโปรแกรมแอสเซมเบลอร์ที่แสดงให้เห็นถึงประสิทธิภาพสูงสุดที่จะได้รับการชื่นชมอย่างมาก ความพยายามของฉัน: #include <stdio.h> …

16
นอนเป็นมิลลิวินาที
ฉันรู้ว่าsleep(x)ฟังก์ชั่นPOSIX ทำให้โปรแกรมนอนหลับเป็นเวลา x วินาที มีฟังก์ชั่นเพื่อทำให้โปรแกรมสลีปสำหรับ x มิลลิวินาทีใน C ++ หรือไม่
631 c++  linux  sleep 

30
ฉันจะตรวจสอบจำนวนเต็มคูณล้นที่ไม่ได้ลงนามอย่างไร
Наэтотвопросестьответына กองมากเกินнарусском : Можнолинаязыках C / C ++ определитьцелочисленноепереполнение? ผมเขียนโปรแกรมใน C ++ เพื่อหาแนวทางแก้ไขปัญหาทั้งหมดของข = คที่, ขและคร่วมกันใช้ตัวเลขทั้งหมด 0-9 ครั้งว่า โปรแกรมวนลูปมากกว่าค่าของaและbและมันรันรูทีนการนับหลักทุกครั้งที่a , bและa bเพื่อตรวจสอบว่าเงื่อนไขหลักเป็นที่พอใจหรือไม่ อย่างไรก็ตามการแก้ปัญหาการปลอมสามารถสร้างขึ้นเมื่อขล้นขีด จำกัด จำนวนเต็ม ฉันสิ้นสุดการตรวจสอบนี้โดยใช้รหัสเช่น: unsigned long b, c, c_test; ... c_test=c*b; // Possible overflow if (c_test/b != c) {/* There has been an overflow*/} else c=c_test; // No …
618 c++  c  integer-overflow 

19
จะทราบได้อย่างไรว่ารายการนั้นมีอยู่ใน std :: vector หรือไม่?
สิ่งที่ฉันต้องการทำคือการตรวจสอบว่ามีองค์ประกอบอยู่ในเวกเตอร์หรือไม่ดังนั้นฉันจึงสามารถจัดการกับแต่ละกรณีได้ if ( item_present ) do_this(); else do_that();
616 c++  vector  std 

8
อ่านไฟล์ทีละบรรทัดโดยใช้ ifstream ใน C ++
เนื้อหาของ file.txt คือ: 5 3 6 4 7 1 10 5 11 6 12 3 12 4 5 3คู่ประสานงานอยู่ที่ไหน ฉันจะประมวลผลข้อมูลนี้ทีละบรรทัดใน C ++ ได้อย่างไร ฉันสามารถรับบรรทัดแรก แต่ฉันจะรับบรรทัดถัดไปของไฟล์ได้อย่างไร ifstream myfile; myfile.open ("text.txt");
612 c++  file-io  ofstream 

29
วิธีที่ง่ายที่สุดในการเริ่มต้น std :: vector ด้วยองค์ประกอบ hardcoded คืออะไร?
ฉันสามารถสร้างอาร์เรย์และเริ่มต้นได้เช่นนี้ int a[] = {10, 20, 30}; ฉันจะสร้างstd::vectorและเริ่มต้นมันอย่างสง่างามในทำนองเดียวกันได้อย่างไร วิธีที่ดีที่สุดที่ฉันรู้คือ: std::vector<int> ints; ints.push_back(10); ints.push_back(20); ints.push_back(30); มีวิธีที่ดีกว่า?

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