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

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

6
คลาส C ++ enum สามารถมีเมธอดได้หรือไม่?
ฉันมีคลาส enum ที่มีค่าสองค่าและฉันต้องการสร้างวิธีที่รับค่าและส่งกลับค่าอื่น ฉันต้องการรักษาความปลอดภัยประเภท (นั่นคือเหตุผลที่ฉันใช้คลาส enum แทน enums) http://www.cplusplus.com/doc/tutorial/other_data_types/ไม่ได้พูดถึงวิธีการใด ๆ อย่างไรก็ตามฉันรู้สึกว่าคลาสทุกประเภทสามารถมีวิธีการได้
145 c++  methods  enums 

6
การใช้งานเธรดรูปแบบซิงเกิลของ Meyers ปลอดภัยหรือไม่
การใช้งานต่อไปนี้โดยใช้การเริ่มต้นขี้เกียจของSingletonเธรด (Meyers 'Singleton) ปลอดภัยหรือไม่ static Singleton& instance() { static Singleton s; return s; } ถ้าไม่ทำไมและวิธีที่จะทำให้มันปลอดภัยไหม?

7
คำหลักอัตโนมัติ C ++ ทำไมมันมหัศจรรย์?
จากวัสดุทั้งหมดที่ฉันใช้ในการเรียนรู้ C ++ autoเป็นตัวระบุระยะเวลาเก็บข้อมูลแปลก ๆ ที่ไม่ได้มีจุดประสงค์เสมอ แต่เมื่อเร็ว ๆ นี้ฉันพบรหัสที่ใช้มันเป็นชื่อประเภทในและของตัวเอง ฉันลองมันด้วยความอยากรู้และมันจะเป็นประเภทของสิ่งที่ฉันจะกำหนดให้มัน! ทันใดนั้นตัววนซ้ำ STL และอะไรก็ได้ที่ใช้แม่แบบนั้นเขียนได้ง่ายกว่า 10 เท่า รู้สึกเหมือนฉันกำลังใช้ภาษา 'สนุก' เช่น Python คำหลักนี้อยู่ที่ไหนทั้งชีวิตของฉัน คุณจะรีบฝันของฉันโดยบอกว่ามันเป็นเอกสิทธิ์ของสตูดิโอภาพหรือไม่พกพา?
145 c++  types  c++11  auto 

11
ฉันจะลบรายการออกจากเวกเตอร์ stl ด้วยค่าที่แน่นอนได้อย่างไร
ฉันดูเอกสาร API สำหรับ stl vector และสังเกตว่าไม่มีวิธีในคลาสเวกเตอร์ที่อนุญาตให้ลบองค์ประกอบด้วยค่าที่แน่นอน ดูเหมือนว่าเป็นการดำเนินการทั่วไปและดูเหมือนแปลกที่ไม่มีวิธีการทำเช่นนี้
145 c++  stl 

12
ทำไมทุกคนจะใช้ชุดแทน unordered_set
C ++ 0x กำลังแนะนำunordered_setซึ่งมีอยู่ในboostและที่อื่น ๆ อีกมากมาย สิ่งที่ฉันเข้าใจคือunordered_setตารางแฮชที่มีO(1)ความซับซ้อนในการค้นหา ในทางตรงกันข้ามsetไม่มีอะไรเลยนอกจากต้นไม้ที่มีlog(n)ความซับซ้อนในการค้นหา ทำไมทุกคนบนโลกจะใช้setแทนunordered_set? เช่นมีความต้องการsetอีกต่อไปหรือไม่

13
การเริ่มต้นโครงสร้าง C ++ ที่สะดวก
ฉันกำลังพยายามหาวิธีที่สะดวกในการเริ่มต้นโครงสร้าง C ++ 'pod' ตอนนี้พิจารณาโครงสร้างต่อไปนี้: struct FooBar { int foo; float bar; }; // just to make all examples work in C and C++: typedef struct FooBar FooBar; หากฉันต้องการเริ่มต้นสิ่งนี้อย่างสะดวกใน C (!) ฉันสามารถเขียน: /* A */ FooBar fb = { .foo = 12, .bar = 3.4 }; // illegal C++, legal …

13
ฉันจะขยายทูเพิลเป็นอาร์กิวเมนต์ของฟังก์ชันเทมเพลตตัวแปรได้อย่างไร
พิจารณากรณีของฟังก์ชันเทมเพลตที่มีอาร์กิวเมนต์แม่แบบตัวแปร: template<typename Tret, typename... T> Tret func(const T&... t); ตอนนี้ผมมีขอบเขตของtของค่า ฉันจะเรียกfunc()ใช้ค่าทูเพิลเป็นอาร์กิวเมนต์ได้อย่างไร ฉันได้อ่านเกี่ยวกับbind()วัตถุฟังก์ชันพร้อมcall()ฟังก์ชันและapply()ฟังก์ชันในเอกสารอื่น ๆ ที่ล้าสมัยในปัจจุบัน การใช้งาน GNU GCC 4.4 ดูเหมือนจะมีcall()ฟังก์ชันในbind()คลาสนี้ แต่มีเอกสารประกอบเกี่ยวกับเรื่องนี้น้อยมาก บางคนแนะนำให้ใช้แฮ็กแบบเรียกซ้ำที่เขียนด้วยมือ แต่มูลค่าที่แท้จริงของอาร์กิวเมนต์แม่แบบตัวแปรคือสามารถใช้ได้ในกรณีเช่นข้างต้น ใครมีวิธีแก้คือหรือบอกใบ้ว่าจะอ่านได้ที่ไหน
145 c++  c++11  arguments  tuples 

8
ค่าฐานสิบหก c ++ cout?
ฉันต้องการทำ: int a = 255; cout << a; และให้มันแสดง FF ในผลลัพธ์ฉันจะทำสิ่งนี้ได้อย่างไร
144 c++  hex  cout 



9
วิธีการแสดงอาร์เรย์ที่จัดสรรแบบไดนามิกในดีบักเกอร์ Visual Studio
ถ้าคุณมีอาร์เรย์ที่ปันส่วนแบบคงที่ดีบัก Visual Studio สามารถแสดงองค์ประกอบอาร์เรย์ทั้งหมดได้อย่างง่ายดาย อย่างไรก็ตามหากคุณมีอาร์เรย์ที่จัดสรรแบบไดนามิกและชี้ไปที่ตัวชี้มันจะแสดงเฉพาะองค์ประกอบแรกของอาร์เรย์เมื่อคุณคลิก + เพื่อขยาย มีวิธีง่าย ๆ ในการบอกดีบักเกอร์แสดงข้อมูลนี้ให้ฉันเป็นอาร์เรย์ประเภท Foo และขนาด X หรือไม่

3
เกิดอะไรขึ้นกับ 'gets (stdin)' บนไซต์ coderbyte
Coderbyte เป็นเว็บไซต์ท้าทายการเข้ารหัสออนไลน์ (ฉันเพิ่งพบเมื่อ 2 นาทีก่อน) ความท้าทาย C ++ แรกที่คุณได้รับการต้อนรับมีโครงกระดูก C ++ ที่คุณต้องแก้ไข: #include <iostream> #include <string> using namespace std; int FirstFactorial(int num) { // Code goes here return num; } int main() { // Keep this function call here cout << FirstFactorial(gets(stdin)); return 0; } หากคุณเป็นเล็ก ๆ น้อย ๆ ที่คุ้นเคยกับ …


4
จะสร้างฟังก์ชั่นเทมเพลตภายในคลาสได้อย่างไร? (C ++)
ฉันรู้ว่าเป็นไปได้ที่จะสร้างฟังก์ชันแม่แบบ: template<typename T> void DoSomeThing(T x){} และเป็นไปได้ที่จะสร้างคลาสเทมเพลต: template<typename T> class Object { public: int x; }; แต่เป็นไปได้ไหมที่จะทำให้คลาสไม่ได้อยู่ในเทมเพลตจากนั้นสร้างฟังก์ชันในคลาสนั้นเป็นเทมเพลต? เช่น: //I have no idea if this is right, this is just how I think it would look class Object { public: template<class T> void DoX(){} }; หรืออะไรบางอย่างในระดับที่ชั้นไม่ได้เป็นส่วนหนึ่งของแม่แบบ แต่ฟังก์ชั่นคืออะไร?
144 c++  templates  function  class 


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