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

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

26
เหตุใดการประมวลผลอาร์เรย์ที่เรียงลำดับจึงเร็วกว่าการประมวลผลอาร์เรย์ที่ไม่เรียงลำดับ
Наэтотвопросестьответына กองมากเกินнарусском : Почемуотсортированныймассивобрабатываетсябыстрее, чемнеотсортированный? นี่คือโค้ด C ++ ที่แสดงพฤติกรรมที่แปลกประหลาดบางอย่าง ด้วยเหตุผลแปลก ๆ บางอย่างการเรียงลำดับข้อมูลทำให้โค้ดเร็วขึ้นเกือบหกเท่า: #include <algorithm> #include <ctime> #include <iostream> int main() { // Generate data const unsigned arraySize = 32768; int data[arraySize]; for (unsigned c = 0; c < arraySize; ++c) data[c] = std::rand() % 256; // !!! With this, the …

22
ตัวดำเนินการ“ ->” ใน C ++ คืออะไร
ตั้งค่าไว้ที่Stack Overflow แล้วใช่ไหม : Чтотакоеоператор "->" ในС ++? หลังจากที่ได้อ่านคุณลักษณะที่ซ่อนอยู่และมุมมืดของ C ++ / STLบนcomp.lang.c++.moderatedฉันรู้สึกประหลาดใจอย่างสมบูรณ์ที่ต่อไปนี้ข้อมูลที่รวบรวมและทำงานทั้งใน Visual Studio 2008 และ G ++ 4.4 นี่คือรหัส: #include <stdio.h> int main() { int x = 10; while (x --> 0) // x goes to 0 { printf("%d ", x); } } เอาท์พุท: 9 8 7 6 …

1
คู่มือและรายการหนังสือ C ++ ที่ชัดเจน
คำตอบของคำถามนี้เป็นความพยายามของชุมชน แก้ไขคำตอบที่มีอยู่เพื่อปรับปรุงโพสต์นี้ ขณะนี้ไม่ยอมรับคำตอบหรือการโต้ตอบใหม่ Наэтотвопросестьответына Stack Overflow нарусском : КнигииучебныересурсыпоС ++ คำถามนี้พยายามรวบรวมไข่มุกน้อยในหนังสือ C ++ ที่มีการตีพิมพ์ทุกปี แตกต่างจากภาษาการเขียนโปรแกรมอื่น ๆ ซึ่งมักจะหยิบขึ้นมาจากบทเรียนที่พบบนอินเทอร์เน็ตไม่กี่คนที่สามารถรับ C ++ ได้อย่างรวดเร็วโดยไม่ต้องเรียนหนังสือ C ++ ที่เขียนได้ดี มันใหญ่เกินไปและซับซ้อนเกินไปสำหรับการทำเช่นนี้ ในความเป็นจริงมันใหญ่และซับซ้อนมากจนมีหนังสือ C ++ ที่แย่มากๆ และเราไม่ได้พูดถึงสไตล์ที่ไม่ดี แต่สิ่งต่าง ๆ เช่นข้อผิดพลาดทางกีฬาที่เห็นได้ชัดอย่างเห็นได้ชัดและส่งเสริมรูปแบบการเขียนโปรแกรมที่ไม่ดีอย่างแท้จริง โปรดแก้ไขคำตอบที่ได้รับการยอมรับที่จะให้หนังสือที่มีคุณภาพและระดับทักษะตัวอย่าง - โดยเฉพาะอย่างยิ่ง หลังจาก การพูดคุยของคุณนอกจากนี้ในที่ C ++ ห้องแชท (ผู้ปฏิบัติงานประจำอาจเลิกงานของคุณอย่างไร้ความปราณีถ้าพวกเขาไม่เห็นด้วยกับคำแนะนำ) เพิ่มคำอธิบายสั้น ๆ / คำอธิบายเกี่ยวกับหนังสือแต่ละเล่มที่คุณได้อ่าน / ได้รับประโยชน์จากส่วนตัว คุณสามารถอภิปรายคุณภาพหัวข้อและอื่น ๆ หนังสือที่ตรงตามเกณฑ์จะถูกเพิ่มเข้าไปในรายการ …
4243 c++  c++-faq 


30
ฉันจะทำซ้ำคำของสตริงได้อย่างไร?
ฉันพยายามย้ำคำของสตริง สตริงสามารถสันนิษฐานได้ว่าประกอบด้วยคำที่คั่นด้วยช่องว่าง โปรดทราบว่าฉันไม่สนใจฟังก์ชั่นสตริง C หรือการจัดการ / เข้าถึงตัวละครแบบนั้น นอกจากนี้โปรดให้ความสำคัญกับความเหนือกว่าประสิทธิภาพในคำตอบของคุณ ทางออกที่ดีที่สุดที่ฉันมีตอนนี้คือ: #include <iostream> #include <sstream> #include <string> using namespace std; int main() { string s = "Somewhere down the road"; istringstream iss(s); do { string subs; iss >> subs; cout << "Substring: " << subs << endl; } while (iss); } มีวิธีที่สง่างามกว่านี้หรือไม่?
2986 c++  string  split 

30
ทำไม“ ใช้ namespace std;” ถือว่าเป็นการปฏิบัติที่ไม่ดี?
ฉันได้รับการบอกเล่าจากคนอื่นว่าการเขียน using namespace std;ในรหัสที่เป็นธรรมและที่ฉันควรใช้std::coutและstd::cinโดยตรงแทน เหตุใดจึงusing namespace std;ถือว่าเป็นวิธีปฏิบัติที่ไม่ดี มันไม่มีประสิทธิภาพหรือมีความเสี่ยงในการประกาศตัวแปรที่ไม่ชัดเจน (ตัวแปรที่ใช้ชื่อเดียวกันกับฟังก์ชั่นในstdเนมสเปซ)? มันส่งผลกระทบต่อประสิทธิภาพหรือไม่


9
เมื่อใดควรใช้ static_cast, dynamic_cast, const_cast และ reinterpret_cast
อะไรคือการใช้งานที่เหมาะสมของ: static_cast dynamic_cast const_cast reinterpret_cast หล่อสไตล์ C (type)value ฟังก์ชั่นหล่อสไตล์ type(value) เราจะตัดสินใจได้อย่างไรว่าจะใช้ในกรณีใด
2492 c++  pointers  casting  c++-faq 

28
อะไรคือความแตกต่างระหว่าง #include <filename> และ #include“ filename”
ในภาษาการเขียนโปรแกรม C และ C ++ ความแตกต่างระหว่างการใช้วงเล็บมุมและการใช้อัญประกาศในincludeคำสั่งมีดังนี้ #include &lt;filename&gt; #include "filename"

10
ทำไมการเติมแบบวนรอบในแบบวนรอบจึงเร็วกว่าการวนซ้ำแบบรวมกันมาก?
สมมติว่าa1, b1, c1และd1ชี้ไปที่หน่วยความจำและกองรหัสตัวเลขของฉันมีห่วงหลักดังต่อไปนี้ const int n = 100000; for (int j = 0; j &lt; n; j++) { a1[j] += b1[j]; c1[j] += d1[j]; } การวนซ้ำนี้จะดำเนินการ 10,000 ครั้งผ่านการforวนรอบนอกอื่น เพื่อเพิ่มความเร็วฉันเปลี่ยนรหัสเป็น: for (int j = 0; j &lt; n; j++) { a1[j] += b1[j]; } for (int j = 0; j &lt; …

8
กฎของสามคืออะไร
อะไรคัดลอกวัตถุหมายถึง? ตัวสร้างสำเนาและตัวดำเนินการกำหนดค่าการคัดลอกคืออะไร ฉันต้องประกาศตัวเองเมื่อใด ฉันจะป้องกันไม่ให้คัดลอกวัตถุของฉันได้อย่างไร

7
อะไรคือกฎพื้นฐานและสำนวนสำหรับผู้ให้บริการมากไป?
หมายเหตุ: คำตอบนั้นถูกจัดเรียงตามลำดับที่เฉพาะเจาะจงแต่เนื่องจากผู้ใช้หลายคนเรียงลำดับคำตอบตามการโหวตมากกว่าเวลาที่ได้รับนี่เป็นดัชนีของคำตอบตามลำดับที่พวกเขาเข้าใจมากที่สุด: ไวยากรณ์ทั่วไปของโอเปอร์เรเตอร์ที่บรรทุกเกินพิกัดใน C ++ กฎพื้นฐานสามข้อของผู้ประกอบการมากไปใน C ++ การตัดสินใจระหว่างสมาชิกและไม่ใช่สมาชิก ผู้ประกอบการทั่วไปที่จะเกินพิกัด ผู้ประกอบการที่ได้รับมอบหมาย อินพุตและเอาต์พุตตัวดำเนินการ ผู้ประกอบการโทรฟังก์ชั่น ผู้ประกอบการเปรียบเทียบ ตัวดำเนินการทางคณิตศาสตร์ การห้อยอาร์เรย์ ตัวดำเนินการสำหรับประเภทที่เหมือนตัวชี้ ผู้ประกอบการแปลง การบรรทุกเกินพิกัดใหม่และลบ (หมายเหตุ: นี่คือหมายถึงการเป็นรายการที่จะกองมากเกินของ C ++ คำถามที่พบบ่อย . ถ้าคุณต้องการที่จะวิจารณ์ความคิดของการให้คำถามที่พบบ่อยในรูปแบบนี้แล้วโพสต์บนเมตาที่เริ่มต้นทั้งหมดนี้ . จะเป็นสถานที่ที่จะทำเช่นนั้นได้คำตอบ คำถามนั้นได้รับการตรวจสอบในห้องสนทนา C ++ซึ่งแนวคิด FAQ เริ่มต้นตั้งแต่แรกดังนั้นคำตอบของคุณมีโอกาสมากที่จะได้รับการอ่านโดยผู้ที่คิดแนวคิดนี้)

5
สำนวนคัดลอกและแลกเปลี่ยนคืออะไร?
สำนวนนี้คืออะไรและควรใช้เมื่อใด ปัญหาอะไรที่แก้ได้? สำนวนเปลี่ยนไปเมื่อใช้ C ++ 11 หรือไม่? แม้ว่ามันจะถูกกล่าวถึงในหลาย ๆ ที่ แต่เราก็ไม่มีคำถามและคำตอบว่า "มันคืออะไร" มันจึงเป็นเช่นนี้ นี่คือรายการบางส่วนของสถานที่ที่เคยกล่าวถึง: สำนวนการเข้ารหัส C ++ ที่คุณชื่นชอบคืออะไร: Copy-swap คัดลอกคอนสตรัคเตอร์และ = ตัวดำเนินการโอเวอร์โหลดใน C ++: เป็นฟังก์ชั่นทั่วไปที่เป็นไปได้หรือไม่? การคัดลอกข้อมูลคืออะไรและจะเพิ่มประสิทธิภาพสำนวนการคัดลอกและสลับ C ++: การจัดสรรอาเรย์ของวัตถุแบบไดนามิกหรือไม่?

8
C ++ 11 แนะนำรุ่นหน่วยความจำที่ได้มาตรฐาน มันหมายความว่าอะไร? แล้วมันจะมีผลกับการเขียนโปรแกรม C ++ อย่างไร?
C ++ 11 นำเสนอโมเดลหน่วยความจำที่ได้มาตรฐาน แต่นั่นหมายความว่าอย่างไร แล้วมันจะมีผลกับการเขียนโปรแกรม C ++ อย่างไร? บทความนี้ (โดยกาวินคล๊าร์คซึ่งเป็นผู้เสนอราคาHerb Sutter ) กล่าวว่า รุ่นหน่วยความจำหมายความว่าตอนนี้รหัส C ++ มีไลบรารีมาตรฐานที่จะเรียกโดยไม่คำนึงว่าใครเป็นผู้สร้างคอมไพเลอร์และแพลตฟอร์มใดที่ทำงานอยู่ มีวิธีมาตรฐานในการควบคุมว่าเธรดที่แตกต่างพูดคุยกับหน่วยความจำของโปรเซสเซอร์ได้อย่างไร “ เมื่อคุณกำลังพูดถึงการแยก [รหัส] ข้ามคอร์ต่าง ๆ ที่อยู่ในมาตรฐานเรากำลังพูดถึงโมเดลหน่วยความจำเราจะเพิ่มประสิทธิภาพโดยไม่ทำลายสมมติฐานต่อไปนี้ที่ผู้คนจะทำในรหัส” ซัทเทอร์กล่าว ฉันสามารถจดจำย่อหน้านี้และย่อหน้าที่คล้ายกันได้ทางออนไลน์ (เนื่องจากฉันมีโมเดลความจำของตัวเองตั้งแต่แรกเกิด: P) และยังสามารถโพสต์เป็นคำตอบสำหรับคำถามที่ถามโดยคนอื่น ๆ แต่จริงๆแล้วฉันไม่เข้าใจเลย นี้. โปรแกรมเมอร์ C ++ เคยพัฒนาแอพพลิเคชั่นแบบมัลติเธรดมาก่อนดังนั้นมันจะสำคัญอย่างไรถ้าเป็นเธรด POSIX หรือเธรด Windows หรือเธรด C ++ 11 ประโยชน์คืออะไร ฉันต้องการที่จะเข้าใจรายละเอียดในระดับต่ำ ฉันรู้สึกเช่นนี้ด้วยว่ารูปแบบหน่วยความจำ C ++ 11 …

10
ทำไมการอ่านบรรทัดจาก stdin ช้ากว่ามากใน C ++ มากกว่า Python?
ฉันต้องการเปรียบเทียบบรรทัดการอ่านของอินพุตสตริงจาก stdin โดยใช้ Python และ C ++ และรู้สึกตกใจเมื่อเห็นว่ารหัส C ++ ของฉันมีลำดับความสำคัญช้ากว่าโค้ด Python ที่เทียบเท่า เนื่องจาก C ++ ของฉันเป็นสนิมและฉันยังไม่ใช่ผู้เชี่ยวชาญ Pythonista โปรดบอกฉันว่าฉันทำอะไรผิดหรือถ้าฉันเข้าใจผิดบางอย่าง (คำตอบ TLDR: รวมคำสั่ง: cin.sync_with_stdio(false)หรือใช้fgetsแทน ผลลัพธ์ TLDR: เลื่อนลงมาจนสุดด้านล่างของคำถามแล้วดูที่ตาราง) รหัส C ++: #include &lt;iostream&gt; #include &lt;time.h&gt; using namespace std; int main() { string input_line; long line_count = 0; time_t start = time(NULL); int …

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