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

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

10
ตรวจสอบว่าแผนที่มีค่าสำหรับคีย์หรือไม่?
วิธีที่ดีที่สุดในการตรวจสอบว่าแผนที่ STL มีค่าสำหรับคีย์ที่กำหนดคืออะไร? #include <map> using namespace std; struct Bar { int i; }; int main() { map<int, Bar> m; Bar b = {0}; Bar b1 = {1}; m[0] = b; m[1] = b1; //Bar b2 = m[2]; map<int, Bar>::iterator iter = m.find(2); Bar b3 = iter->second; } ตรวจสอบสิ่งนี้ในตัวดีบักดูเหมือนว่าiterเป็นเพียงข้อมูลขยะ หากฉันไม่แสดงข้อคิดเห็นในบรรทัดนี้: …
256 c++  stl  map 

15
วัตถุประสงค์ของสหภาพใน C และ C ++
ก่อนหน้านี้ฉันใช้สหภาพอย่างสะดวกสบาย วันนี้ฉันตื่นตระหนกเมื่อฉันอ่านโพสต์นี้และรู้ว่ารหัสนี้ union ARGB { uint32_t colour; struct componentsTag { uint8_t b; uint8_t g; uint8_t r; uint8_t a; } components; } pixel; pixel.colour = 0xff040201; // ARGB::colour is the active member from now on // somewhere down the line, without any edit to pixel if(pixel.components.a) // accessing the non-active member …
254 c++  c  unions  type-punning 

14
ประโยชน์ของฟังก์ชั่นอินไลน์ใน C ++?
ข้อดี / ข้อเสียของการใช้ฟังก์ชั่นอินไลน์ใน C ++ คืออะไร ฉันเห็นว่ามันเพิ่มประสิทธิภาพสำหรับโค้ดที่คอมไพเลอร์ส่งออกเท่านั้น แต่ด้วยคอมไพเลอร์ที่ได้รับการปรับปรุงในปัจจุบัน, ซีพียูเร็ว, หน่วยความจำขนาดใหญ่ ฯลฯ (ไม่เหมือนกับในปี 1980 <ที่หน่วยความจำขาดแคลนมาก วันนี้พวกเขามีข้อดีอย่างไร

8
“ เปิดออก” tuple เพื่อเรียกตัวชี้ฟังก์ชั่นการจับคู่
ฉันพยายามที่จะเก็บในstd::tupleจำนวนที่แตกต่างกันของค่าซึ่งในภายหลังจะใช้เป็นข้อโต้แย้งสำหรับการโทรไปยังตัวชี้ฟังก์ชั่นที่ตรงกับประเภทที่เก็บไว้ ฉันได้สร้างตัวอย่างแบบง่าย ๆ ที่แสดงปัญหาที่ฉันพยายามแก้ไข: #include <iostream> #include <tuple> void f(int a, double b, void* c) { std::cout << a << ":" << b << ":" << c << std::endl; } template <typename ...Args> struct save_it_for_later { std::tuple<Args...> params; void (*func)(Args...); void delayed_dispatch() { // How can I "unpack" params to …

4
วิธีการแปลงอาร์เรย์ถ่านเป็นสตริง?
แปลง C ++ stringไปแถวถ่านเป็น straightorward สวยโดยใช้ฟังก์ชั่นของสตริงแล้วทำc_str strcpyอย่างไรก็ตามวิธีการทำตรงข้าม? ฉันมีแถวถ่านชอบที่จะแปลงกลับไปที่:char arr[ ] = "This is a test"; string str = "This is a test
254 c++  string  char  arrays 

4
มีความแตกต่างระหว่าง foo (void) และ foo () ใน C ++ หรือ C หรือไม่
พิจารณานิยามฟังก์ชันทั้งสองนี้: void foo() { } void foo(void) { } มีความแตกต่างระหว่างสองคนนี้ไหม? ถ้าไม่เป็นเช่นนั้นทำไมจึงมีการvoidโต้แย้ง? เหตุผลด้านความงาม?
253 c++  c  arguments 

3
คำสั่งเริ่มต้นรายการประเมินผลตัวสร้าง
ฉันมีตัวสร้างที่ใช้อาร์กิวเมนต์บางอย่าง ฉันสันนิษฐานว่าพวกเขาถูกสร้างขึ้นตามลำดับที่ระบุไว้ แต่ในกรณีหนึ่งดูเหมือนว่าพวกเขากำลังสร้างในสิ่งที่ตรงกันข้ามทำให้เกิดการยกเลิก เมื่อฉันย้อนกลับข้อโต้แย้งโปรแกรมหยุดยกเลิก นี่คือตัวอย่างของไวยากรณ์ที่ฉันใช้ สิ่งนี้คือ a_ ต้องเริ่มต้นก่อน b_ ในกรณีนี้ คุณสามารถรับประกันลำดับของการก่อสร้างได้หรือไม่? เช่น class A { public: A(OtherClass o, string x, int y) : a_(o), b_(a_, x, y) { } OtherClass a_; AnotherClass b_; };
252 c++  gcc  c++-faq 

10
{0} หมายถึงอะไรเมื่อเริ่มต้นวัตถุ
เมื่อ{0}ใช้ในการเริ่มต้นวัตถุมันหมายถึงอะไร? ฉันไม่สามารถหาการอ้างอิงใด ๆ ไปยัง{0}ที่ใดก็ได้และเนื่องจากการจัดฟันแบบปีกกาการค้นหาของ Google ไม่เป็นประโยชน์ รหัสตัวอย่าง: SHELLEXECUTEINFO sexi = {0}; // what does this do? sexi.cbSize = sizeof(SHELLEXECUTEINFO); sexi.hwnd = NULL; sexi.fMask = SEE_MASK_NOCLOSEPROCESS; sexi.lpFile = lpFile.c_str(); sexi.lpParameters = args; sexi.nShow = nShow; if(ShellExecuteEx(&sexi)) { DWORD wait = WaitForSingleObject(sexi.hProcess, INFINITE); if(wait == WAIT_OBJECT_0) GetExitCodeProcess(sexi.hProcess, &returnCode); } ก็ไม่มีรหัสข้างต้นจะผิดพลาดในการรันไทม์
252 c++  c 


8
วิธีทำให้ประเภทที่กำหนดเองของฉันทำงานกับ“ ช่วงตามลูป” ได้อย่างไร
เช่นเดียวกับหลาย ๆ คนในทุกวันนี้ฉันได้ลองใช้คุณสมบัติที่แตกต่างที่ C ++ 11 นำมาใช้ หนึ่งในรายการโปรดของฉันคือ "ช่วงตามลูป" ฉันเข้าใจ: for(Type& v : a) { ... } เทียบเท่ากับ: for(auto iv = begin(a); iv != end(a); ++iv) { Type& v = *iv; ... } และนั่นbegin()ก็แค่ส่งคืนa.begin()สำหรับคอนเทนเนอร์มาตรฐาน แต่สิ่งที่ถ้าผมต้องการที่จะทำให้ประเภทของฉันเอง "ช่วงที่ใช้สำหรับวง" -aware ? ฉันควรจะมีความเชี่ยวชาญbegin()และend()? หากประเภทที่กำหนดเองของฉันเป็นของเนมสเปซxmlฉันควรกำหนดxml::begin()หรือstd::begin()? ในระยะสั้นสิ่งที่เป็นแนวทางในการทำเช่นนั้น?

7
ฉันจะเพิ่มค่า int ด้วยเลขศูนย์นำหน้าเมื่อใช้ตัวดำเนินการ cout << ได้อย่างไร [ซ้ำ]
คำถามนี้มีคำตอบอยู่ที่นี่แล้ว : พิมพ์ศูนย์นำหน้าด้วยตัวดำเนินการเอาต์พุต C ++ หรือไม่ (5 คำตอบ) ปิดเมื่อวานนี้ ฉันต้องการcoutที่จะออก int กับศูนย์ชั้นนำเพื่อให้ค่าที่1จะได้รับการพิมพ์001และความคุ้มค่าพิมพ์เป็น25 025ฉันจะทำสิ่งนี้ได้อย่างไร
251 c++  formatting  cout 


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

26
เทคนิคใดที่สามารถใช้เร่งความเร็วการรวบรวม C ++
เทคนิคใดที่สามารถใช้เร่งความเร็วการรวบรวม C ++ คำถามนี้เกิดขึ้นในความคิดเห็นบางส่วนเกี่ยวกับรูปแบบการเขียนโปรแกรมแบบซ้อนคำถามC ++และฉันสนใจที่จะรับฟังแนวคิดที่มีอยู่ ฉันเห็นคำถามที่เกี่ยวข้องแล้วเหตุใดการรวบรวม C ++ จึงใช้เวลานานมาก แต่นั่นไม่ได้มีวิธีแก้ปัญหามากมาย
249 c++ 

13
การเรียงลำดับเวกเตอร์ของวัตถุที่กำหนดเอง
จะมีวิธีการเกี่ยวกับการเรียงลำดับเวกเตอร์ที่มีวัตถุที่กำหนดเอง (เช่นผู้ใช้กำหนด) อาจจัดเรียงอัลกอริทึม STL มาตรฐานพร้อมกับเพรดิเคต (ฟังก์ชันหรือวัตถุฟังก์ชัน) ซึ่งจะทำงานบนหนึ่งในฟิลด์ (เป็นคีย์สำหรับการเรียงลำดับ) ในวัตถุที่กำหนดเองควรใช้ ฉันกำลังติดตามใช่ไหม?
249 c++  stl  sorting 

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