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

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

3
“ การอ้างอิงค่าสำหรับ * นี้” คืออะไร?
มาข้ามข้อเสนอที่เรียกว่า "การอ้างอิง rvalue สำหรับ * นี้" ในเสียงดังกราวของC ++ หน้า ฉันได้อ่านเกี่ยวกับการอ้างอิงค่าและเข้าใจพวกเขามาบ้าง แต่ฉันไม่คิดว่าฉันจะรู้เรื่องนี้ ฉันไม่สามารถหาแหล่งข้อมูลมากมายบนเว็บโดยใช้คำศัพท์ มีลิงก์ไปยังเอกสารข้อเสนอบนหน้า: N2439 (ขยายความหมายของการย้ายไปเป็น * สิ่งนี้) แต่ฉันก็ไม่ได้รับตัวอย่างมากมายจากที่นั่น คุณสมบัตินี้เกี่ยวกับอะไร?

16
เวกเตอร์กับรายการใน STL
ฉันสังเกตเห็นใน Effective STL vector เป็นชนิดของลำดับที่ควรใช้เป็นค่าเริ่มต้น มันหมายความว่าอะไร? ดูเหมือนว่าการเพิกเฉยต่อประสิทธิภาพvectorสามารถทำอะไรก็ได้ ใครช่วยเสนอสถานการณ์ที่vectorไม่มีตัวเลือกที่เป็นไปได้ แต่listต้องใช้?
238 c++  list  vector  stl 

17
มีการใช้งาน unique_ptr กับอาเรย์ไหม?
std::unique_ptr มีการสนับสนุนสำหรับอาร์เรย์ตัวอย่างเช่น: std::unique_ptr<int[]> p(new int[10]); แต่มันจำเป็นหรือไม่ อาจจะมีความสะดวกมากขึ้นในการใช้หรือstd::vectorstd::array คุณพบว่ามีประโยชน์สำหรับการสร้างที่?

15
เหตุใดโปรแกรมของฉันจึงคอมไพล์ใน Windows 7 ในภาษาฝรั่งเศสไม่ได้ [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน6 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ ฉันใช้ Windows 7 French และฉันพยายามที่จะรวบรวมโปรแกรมพื้นฐานนี้จริงๆ แต่ Visual Studio กำลังดื้อรั้นและปฏิเสธที่จะปฏิบัติตาม ฉันพยายามรวบรวมทั้ง GCC 4.7 และ Clang trunk บนColiruและฉันได้รับข้อผิดพลาดเดียวกันมากขึ้นหรือน้อยลง (ผลลัพธ์ต่ำกว่ารหัส) แม้ว่าฉันคิดว่า Coliru ทำงานบนระบบปฏิบัติการภาษาอังกฤษดังนั้นฉันจึงไม่คาดหวังว่ามันจะทำงานได้ . ผมทำอะไรผิดหรือเปล่า? และฉันจะแก้ไขได้อย่างไร รหัส #inclure <iostream> ent principal(ent argn, ent** argm) // entier, nombre d'arguments, valeur des …

5
วิธีการโอเวอร์โหลดโอเปอเรเตอร์ << สำหรับ ostream อย่างถูกต้องหรือไม่
ฉันกำลังเขียนไลบรารีเมทริกซ์ขนาดเล็กใน C ++ สำหรับการดำเนินการเมทริกซ์ อย่างไรก็ตามคอมไพเลอร์ของฉันบ่นซึ่งก่อนหน้านั้นไม่ได้ รหัสนี้ถูกวางไว้บนหิ้งเป็นเวลา 6 เดือนและในระหว่างที่ฉันอัพเกรดคอมพิวเตอร์ของฉันจากเดเบียนจำหลักเป็นเลนนี่ (g ++ (เดเบียน 4.3.2-1.1) 4.3.2) แต่ฉันมีปัญหาเดียวกันในระบบ Ubuntu ที่มี g ++ เดียวกัน . นี่คือส่วนที่เกี่ยวข้องของคลาสเมทริกซ์ของฉัน: namespace Math { class Matrix { public: [...] friend std::ostream&amp; operator&lt;&lt; (std::ostream&amp; stream, const Matrix&amp; matrix); } } และ "การใช้งาน": using namespace Math; std::ostream&amp; Matrix::operator &lt;&lt;(std::ostream&amp; stream, const Matrix&amp; …

21
ฉันจะปิดเสียงเตือนเกี่ยวกับตัวแปรที่ไม่ได้ใช้ได้อย่างไร
ฉันมีแอพพลิเคชั่นข้ามแพลตฟอร์มและในบางฟังก์ชั่นของฉันไม่ได้ใช้ค่าทั้งหมดที่ส่งไปยังฟังก์ชั่น ดังนั้นฉันจึงได้รับคำเตือนจาก GCC บอกฉันว่ามีตัวแปรที่ไม่ได้ใช้ อะไรจะเป็นวิธีที่ดีที่สุดในการเขียนโปรแกรมเตือน #ifdef รอบฟังก์ชั่นหรือไม่ #ifdef _MSC_VER void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal qrLeft, qreal qrTop, qreal qrWidth, qreal qrHeight) #else void ProcessOps::sendToExternalApp(QString sAppName, QString sImagePath, qreal /*qrLeft*/, qreal /*qrTop*/, qreal /*qrWidth*/, qreal /*qrHeight*/) #endif { มันน่าเกลียดมาก แต่ดูเหมือนว่าวิธีที่คอมไพเลอร์จะชอบ หรือฉันจะกำหนดศูนย์ให้กับตัวแปรที่ส่วนท้ายของฟังก์ชั่น? (ซึ่งฉันเกลียดเพราะมันเปลี่ยนแปลงบางสิ่งบางอย่างในโฟลว์ของโปรแกรมเพื่อปิดเสียงเตือนคอมไพเลอร์) มีวิธีที่ถูกต้องหรือไม่?
237 c++  gcc  warnings  gcc-warning 

2
"ระยะเวลา" คืออะไรและฉันควรใช้เมื่อใด
เมื่อเร็ว ๆ นี้ฉันได้รับคำแนะนำให้ใช้span&lt;T&gt;ในโค้ดของฉันหรือเคยเห็นคำตอบบางอย่างในเว็บไซต์ซึ่งใช้spanคอนเทนเนอร์บางชนิด แต่ - ฉันไม่พบอะไรอย่างนั้นในไลบรารีมาตรฐาน C ++ 17 ดังนั้นสิ่งนี้ลึกลับspan&lt;T&gt;และทำไม (หรือเมื่อ) มันเป็นความคิดที่ดีที่จะใช้มันถ้ามันไม่ได้มาตรฐาน?

11
"หน่วยการแปล" ใน C ++ คืออะไร
ฉันกำลังอ่าน "C ++ ที่มีประสิทธิภาพ" ที่เขียนโดย Meyers และเจอคำว่า "หน่วยการแปล" ใครช่วยกรุณาให้คำอธิบายของฉัน: 1) มันคืออะไรกันแน่ 2) ฉันควรพิจารณาใช้เมื่อเขียนโปรแกรมด้วย C ++ 3) ถ้ามันเกี่ยวข้องกับ C ++ เท่านั้นหรือสามารถใช้กับภาษาโปรแกรมอื่นได้ ฉันอาจใช้แล้วโดยไม่ทราบคำศัพท์ ....
236 c++ 

26
คำถามสัมภาษณ์: ตรวจสอบว่าสายหนึ่งมีการหมุนของสายอื่น ๆ [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม &amp; คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องการอภิปรายการโต้แย้งการหยั่งเสียงหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน9 ปีที่ผ่านมา ล็อคแล้ว คำถามและคำตอบของคำถามนี้ถูกล็อคเนื่องจากคำถามอยู่นอกหัวข้อ แต่มีความสำคัญทางประวัติศาสตร์ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ เพื่อนของฉันถูกถามคำถามต่อไปนี้วันนี้ในการสัมภาษณ์สำหรับตำแหน่งของนักพัฒนาซอฟต์แวร์: ให้สองสายs1และs2คุณจะตรวจสอบว่าs1เป็นรุ่นที่หมุนได้s2อย่างไร ตัวอย่าง: ถ้าs1 = "stackoverflow"ต่อไปนี้เป็นเวอร์ชันที่หมุนได้: "tackoverflows" "ackoverflowst" "overflowstack" ในขณะที่"stackoverflwo"เป็นไม่ได้เป็นรุ่นที่หมุน คำตอบที่เขาให้คือ: ใช้เวลาs2และค้นหาคำนำหน้ายาวที่สุดที่เป็นสตริงย่อยของs1ที่จะให้จุดหมุน เมื่อคุณพบจุดนั้นให้หยุดs2ที่จุดนั้นเพื่อรับs2aและs2bจากนั้นตรวจสอบว่าconcatenate(s2a,s2b) == s1 มันดูเหมือนเป็นทางออกที่ดีสำหรับฉันและเพื่อนของฉัน แต่ผู้สัมภาษณ์คิดเป็นอย่างอื่น เขาขอวิธีแก้ปัญหาที่ง่ายกว่า โปรดช่วยฉันด้วยการบอกว่าคุณจะทำสิ่งนี้ได้Java/C/C++อย่างไร? ขอบคุณล่วงหน้า.
235 java  c++  c 

1
std :: vector ถดถอยประสิทธิภาพเมื่อเปิดใช้งาน C ++ 11
ฉันพบการถดถอยของประสิทธิภาพที่น่าสนใจใน C ++ snippet ขนาดเล็กเมื่อฉันเปิดใช้ C ++ 11: #include &lt;vector&gt; struct Item { int a; int b; }; int main() { const std::size_t num_items = 10000000; std::vector&lt;Item&gt; container; container.reserve(num_items); for (std::size_t i = 0; i &lt; num_items; ++i) { container.push_back(Item()); } return 0; } ด้วย g ++ (GCC) 4.8.2 20131219 …
235 c++  performance  gcc  c++11  vector 

8
ฉันจะติดตั้งไลบรารี OpenSSL บน Ubuntu ได้อย่างไร
ฉันกำลังพยายามสร้างรหัสบางอย่างบน Ubuntu 10.04 LTS ที่ใช้ OpenSSL 1.0.0 เมื่อฉันรัน make มันจะเรียกใช้ g ++ พร้อมตัวเลือก "-lssl" แหล่งรวม: #include &lt;openssl/bio.h&gt; #include &lt;openssl/buffer.h&gt; #include &lt;openssl/des.h&gt; #include &lt;openssl/evp.h&gt; #include &lt;openssl/pem.h&gt; #include &lt;openssl/rsa.h&gt; ฉันวิ่ง: $ sudo apt-get install openssl Reading package lists... Done Building dependency tree Reading state information... Done openssl is already the newest version. …


27
อะไรคือวิธีที่ดีกว่าในการหลีกเลี่ยงสิ่งที่ต้องทำในขณะที่ (0); แฮ็คใน C ++?
เมื่อโฟลว์โค้ดเป็นดังนี้: if(check()) { ... ... if(check()) { ... ... if(check()) { ... ... } } } ฉันได้เห็นงานนี้ทั่วเพื่อหลีกเลี่ยงการไหลของรหัสยุ่งข้างต้น: do { if(!check()) break; ... ... if(!check()) break; ... ... if(!check()) break; ... ... } while(0); มีวิธีใดบ้างที่ดีกว่าที่จะหลีกเลี่ยงวิธีนี้เพื่อหลีกเลี่ยงการแฮ็กเพื่อให้เป็นโค้ดระดับสูงขึ้น (ระดับอุตสาหกรรม) ข้อเสนอแนะใด ๆ ที่อยู่นอกกรอบยินดีต้อนรับ!
233 c++  do-while 

21
round () สำหรับ float ใน C ++
ฉันต้องการฟังก์ชั่นการปัดเศษทศนิยมง่ายๆเช่น: double round(double); round(0.1) = 0 round(-0.1) = 0 round(-0.9) = -1 ฉันสามารถหาceil()และfloor()ใน math.h - round()แต่ไม่ได้ มีอยู่ในไลบรารี C ++ มาตรฐานภายใต้ชื่ออื่นหรือไม่หรือไม่?

10
อนุญาตให้ลบหรือไม่
มันอนุญาตให้delete this;หากคำสั่งลบเป็นคำสั่งสุดท้ายที่จะดำเนินการในอินสแตนซ์ของชั้นเรียนที่? แน่นอนฉันแน่ใจว่าวัตถุที่แสดงโดยthis-pointer นั้นnewถูกสร้างขึ้นอย่างสมบูรณ์ ฉันกำลังคิดเกี่ยวกับสิ่งนี้: void SomeModule::doStuff() { // in the controller, "this" object of SomeModule is the "current module" // now, if I want to switch over to a new Module, eg: controller-&gt;setWorkingModule(new OtherModule()); // since the new "OtherModule" object will take the lead, // I want to get …

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