หน้าแรก
หน้าแรก
ใน C++ ขนาดของเลขทศนิยมคือ 4 ไบต์หรือ 8 ไบต์ จึงสามารถเก็บทศนิยมได้ไม่กี่ตำแหน่ง ตัวอย่างเช่น 1/3 =0.333333…… จนถึงอนันต์ หากเราเก็บไว้ในตัวแปรประเภทลอยตัว มันจะเก็บตัวเลขที่สำคัญบางตัว ค่าเริ่มต้นคือ 6 ดังนั้นโดยปกติตัวเลขทศนิยมใน C++ สามารถแสดงทศนิยมได้สูงสุด 6 ตำแหน่ง เราเปลี่ยนขนาดของความแม่นยำ
หน่วยความจำที่แบ่งใช้คือหน่วยความจำที่แบ่งใช้ระหว่างสองกระบวนการขึ้นไป แต่ทำไมเราต้องแบ่งปันความทรงจำหรือวิธีการสื่อสารอื่น ๆ ? ย้ำอีกครั้งว่าแต่ละกระบวนการมีพื้นที่ที่อยู่ของตัวเอง หากกระบวนการใดต้องการสื่อสารกับข้อมูลบางอย่างจากพื้นที่ที่อยู่ของตนเองไปยังกระบวนการอื่น ก็สามารถทำได้ด้วยเทคนิค IPC
ทำไมเราต้องมีคิวข้อความเมื่อเรามีหน่วยความจำที่ใช้ร่วมกันอยู่แล้ว? อาจมีสาเหตุหลายประการ ให้เราลองแยกสิ่งนี้ออกเป็นหลายจุดเพื่อให้เข้าใจง่าย - ตามที่เข้าใจแล้ว เมื่อกระบวนการได้รับข้อความแล้ว จะไม่มีให้สำหรับกระบวนการอื่นอีกต่อไป ในขณะที่ในหน่วยความจำที่ใช้ร่วมกัน ข้อมูลจะพร้อมใช้งานสำหรับหลายกระ
ที่นี่เราจะมาดูวิธีใช้ช่วงตามลูปสำหรับวัตถุประเภทแผนที่ std::map ใน C ++ เรารู้ว่ามีวัตถุประเภทแผนที่ ที่สามารถเก็บคู่ค่าคีย์ แผนที่โดยทั่วไปจะจัดเก็บวัตถุคู่ ออบเจ็กต์คู่นี้ใช้เพื่อเก็บหนึ่งคีย์และค่าที่สอดคล้องกัน คีย์และค่าเหล่านี้ใช้งานโดยใช้เทมเพลต เราจึงใช้ข้อมูลประเภทใดก็ได้ ในการใช้ช่วงที่อ
ที่นี่เราจะดูว่าคลาสพร็อกซีใน C ++ คืออะไร คลาส Proxy นั้นคือรูปแบบการออกแบบ Proxy ในรูปแบบนี้ ออบเจ็กต์จัดเตรียมอินเทอร์เฟซที่แก้ไขสำหรับคลาสอื่น เรามาดูตัวอย่างกัน ในตัวอย่างนี้ เราต้องการสร้างคลาสอาร์เรย์ที่สามารถเก็บเฉพาะค่าไบนารี [0, 1] นี่เป็นครั้งแรกที่ลอง โค้ดตัวอย่าง class BinArray {  
ที่นี่เราจะดูวิธีการจับเวลาโดยใช้ C ++ ที่นี่เรากำลังสร้างคลาสหนึ่งที่เรียกว่าภายหลัง คลาสนี้มีคุณสมบัติดังต่อไปนี้ int (มิลลิวินาทีเพื่อรอจนกว่าจะรันโค้ด) บูล (หากเป็นจริง จะส่งคืนทันที และเรียกใช้โค้ดหลังจากเวลาที่กำหนดบนเธรดอื่น) อาร์กิวเมนต์ของตัวแปร (เราต้องการฟีดไปที่ std::bind) เราสามารถเป
การเริ่มต้นแบบไดนามิกของอ็อบเจ็กต์หมายถึงการเริ่มต้นอ็อบเจ็กต์ขณะรันไทม์ กล่าวคือ ค่าเริ่มต้นของอ็อบเจ็กต์จะถูกจัดเตรียมไว้ระหว่างรันไทม์ การเริ่มต้นแบบไดนามิกสามารถทำได้โดยใช้คอนสตรัคเตอร์และส่งค่าพารามิเตอร์ไปยังคอนสตรัคเตอร์ จำเป็นต้องมีการกำหนดค่าเริ่มต้นประเภทนี้เพื่อเริ่มต้นตัวแปรคลาสในระหว่าง
ใน C เราสามารถใช้ฟังก์ชัน freopen() เพื่อจุดประสงค์ในการเปลี่ยนเส้นทาง เมื่อใช้ฟังก์ชันนี้ เราสามารถเปลี่ยนเส้นทางตัวชี้ FILE ที่มีอยู่ไปยังสตรีมอื่นได้ ไวยากรณ์ของ freeopen เป็นดังนี้: FILE *freopen(const char* filename, const char* mode, FILE *stream) ใน C ++ เราสามารถทำการเปลี่ยนเส้นทางได้ ใน C
ใน C++ เรามีคอนเทนเนอร์ที่แตกต่างกัน เช่น เวกเตอร์ รายการ ชุด แผนที่ ฯลฯ ในการวนซ้ำผ่านคอนเทนเนอร์เหล่านี้ เราสามารถใช้ตัววนซ้ำได้ เราควรระมัดระวังเมื่อเราใช้ตัววนซ้ำใน C++ เมื่อเราใช้การวนซ้ำบนคอนเทนเนอร์ บางครั้งอาจใช้การไม่ได้ ถ้ารูปร่าง ขนาด เปลี่ยนไป เราก็เจอปัญหาแบบนี้ ในตัวอย่างต่อไปนี้ เราสา
รูปแบบคอมโพสิตถูกใช้ในที่ที่เราจำเป็นต้องปฏิบัติต่อกลุ่มของวัตถุในลักษณะที่คล้ายคลึงกันเป็นวัตถุเดียว รูปแบบคอมโพสิตประกอบด้วยออบเจกต์ในแง่ของโครงสร้างแบบต้นไม้เพื่อแสดงส่วนต่างๆ เช่นเดียวกับลำดับชั้นทั้งหมด รูปแบบการออกแบบประเภทนี้อยู่ภายใต้รูปแบบโครงสร้างเนื่องจากรูปแบบนี้สร้างโครงสร้างต้นไม้ของกล
ที่นี่เราจะดูว่าตัววนซ้ำเอาต์พุตใน C ++ คืออะไร ตัววนซ้ำเอาต์พุตมีคุณสมบัติบางอย่าง เหล่านี้เป็นเหมือนด้านล่าง: ตัววนซ้ำเอาต์พุตใช้เพื่อแก้ไขค่าของคอนเทนเนอร์ เราไม่สามารถอ่านข้อมูลจากคอนเทนเนอร์โดยใช้ตัววนซ้ำประเภทนี้ได้ นี่คือตัววนซ้ำแบบทางเดียวและแบบเขียนเท่านั้น เพิ่มได้ แต่ลดไม่ได้ ตัววนซ้ำเอา
ที่นี่เราจะเห็นแนวคิดของตัววนซ้ำสองทิศทางใน C++ ตัววนซ้ำแบบสองทิศทางสนับสนุนคุณลักษณะทั้งหมดของตัววนซ้ำการส่งต่อ และยังรวมถึงตัวดำเนินการลดคำนำหน้าและหลังการแก้ไข ตัววนซ้ำประเภทนี้สามารถเข้าถึงองค์ประกอบได้ทั้งสองทิศทาง เช่น ไปจนสุดทางและไปยังจุดเริ่มต้น ตัววนซ้ำการเข้าถึงโดยสุ่มยังเป็นประเภทของตัว
เราจะมาดูวิธีการสร้าง Random Linear Extension ของ Directed Acyclic Graph (DAG) ส่วนขยายเชิงเส้นนั้นโดยทั่วไปแล้วเป็นการเรียงลำดับทอพอโลยีของ DAG ให้เราพิจารณาว่ากราฟเป็นดังนี้ - การเรียงลำดับทอพอโลยีสำหรับกราฟอะไซคลิกโดยตรงคือการเรียงลำดับเชิงเส้นของจุดยอด สำหรับทุกขอบ u-v ของกราฟกำกับ จุดยอด u จ
ที่นี่เราจะเห็นอัลกอริทึมของ Johnson เพื่อค้นหาเส้นทางที่สั้นที่สุดระหว่างจุดยอดสองจุด กราฟได้รับที่นี่ เส้นทางที่สั้นที่สุดระหว่างขอบเป็นเหมือนด้านล่าง โปรแกรมนี้จะใช้จำนวนจุดยอด จำนวนขอบ และขอบด้วยต้นทุน ป้อนข้อมูล − จุดยอด:3 ขอบ:5 ได้เปรียบด้วยต้นทุน - 1 2 8 2 1 12 1 3 22 3 1 6 2 3
บางครั้งเราสังเกตว่าคอนโซลถูกปิดทันทีหลังจากแสดงผล เราจึงไม่เห็นผลอย่างถูกต้อง เราจะมาดูกันว่าเราจะหยุดคอนโซลไม่ให้ปิดได้อย่างไร ความคิดนั้นง่ายมาก เราสามารถใช้ฟังก์ชัน getchar() ในตอนท้าย สิ่งนี้จะรออักขระหนึ่งตัว หากกดอักขระหนึ่งตัว คอนโซลจะปิด ตัวอย่าง #include <iostream> using namespace s
ใน C ++ เราสามารถได้รับบางคลาส บางครั้งเราจำเป็นต้องเรียกคอนสตรัคเตอร์ซูเปอร์คลาส (คลาสฐาน) เมื่อเรียกคอนสตรัคเตอร์ของคลาสที่ได้รับ ต่างจาก Java ไม่มีตัวแปรอ้างอิงสำหรับ super class หากคอนสตรัคเตอร์ไม่มีการกำหนดพารามิเตอร์ จะถูกเรียกโดยอัตโนมัติด้วยคลาสที่ได้รับ มิฉะนั้น เราต้องใส่คอนสตรัคเตอร์ซูเปอ
เราจะมาดูกันว่า iostream และ iostream.h มีความแตกต่างกันอย่างไรใน C++ iostream.h เป็นไฟล์ส่วนหัวที่ใช้โดยไลบรารีสตรีม I/O ในช่วงต้นปี 1990 สิ่งนี้ได้รับการพัฒนาที่ AT&T เพื่อใช้กับ C ++ รุ่นแรก ในเวลานั้น C++ ไม่ได้มาตรฐาน ไฟล์ส่วนหัว iostream ที่ใช้โดยไลบรารีมาตรฐาน C++ เผยแพร่ครั้งแรกในปี 1998 เพ
คุณลักษณะการจัดการข้อยกเว้นมีอยู่เกือบทุกภาษาเชิงวัตถุในปัจจุบัน ใน C ++ และ Java เราสามารถรับคุณสมบัติประเภทนี้ได้เช่นกัน มีความคล้ายคลึงกันระหว่างการจัดการข้อยกเว้นใน C ++ และการจัดการข้อยกเว้นใน Java เช่นในทั้งสองภาษาที่เราต้องใช้บล็อก try-catch แม้ว่าจะมีความยากลำบากอยู่บ้าง เหล่านี้เป็นเหมือนด้
ใน C++ และ Java มีลูปประเภทอื่นที่เรียกว่า foreach loop ไม่มีอยู่ใน C ลูปนี้นำมาใช้ใน C++11 และ Java JDK 1.5.0 ข้อดีของลูปนี้คือสามารถเข้าถึงองค์ประกอบได้อย่างรวดเร็วโดยไม่ต้องเริ่มต้น ทดสอบ และเพิ่ม/ลด ลูปนี้ใช้เพื่อเข้าถึงทุกองค์ประกอบในหนึ่งอาร์เรย์หรือบางคอนเทนเนอร์ ลูปนี้เรียกว่า foreach แต่เพื
ที่นี่เราจะดูตัวอย่าง C ++ และพยายามรับว่าจะสร้างเอาต์พุตประเภทใด จากนั้นเราจะเข้าใจวัตถุประสงค์และหน้าที่ของตัวดำเนินการความละเอียดขอบเขตและตัวชี้ นี่ ใน C++ หากโค้ดบางตัวมีสมาชิกบางคนพูดว่า x และเราต้องการใช้ฟังก์ชันอื่นที่มีอาร์กิวเมนต์ชื่อ x เหมือนกัน ดังนั้นในฟังก์ชันนั้น หากเราใช้ x มันจะซ่อน