Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. แทนที่ส่วนของสตริงด้วยสตริงอื่นใน C++

    ที่นี่เราจะดูวิธีแทนที่ส่วนของสตริงด้วยสตริงอีกตัวใน C++ การแทนที่ใน C++ ทำได้ง่ายมาก มีฟังก์ชันชื่อ string.replace() ฟังก์ชันนี้แทนที่เพียงครั้งแรกที่พบเท่านั้น เพื่อทำทั้งหมดเราใช้ลูป ฟังก์ชัน replace รับดัชนีที่จะเริ่มแทนที่ ความยาวของสตริง และสตริงที่จะวางแทนสตริงที่ตรงกัน Input: สตริง Hello..

  2. แทนที่สตริงย่อยด้วยสตริงย่อยอื่นใน C++

    ที่นี่เราจะดูวิธีแทนที่สตริงย่อยด้วยสตริงย่อยอีกตัวหนึ่ง ฟังก์ชันนี้จะแทนที่ส่วนของสตริงที่เริ่มต้นที่ตำแหน่ง pos และมีความยาว len ตัวอักษร โครงสร้างของฟังก์ชัน replace เหมือนด้านล่าง: string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen); พารามิเตอร์ค

  3. โปรแกรม C++ ตรวจสอบวงเล็บสมดุลด้วย Stack

    ที่นี่เราจะพูดถึงวิธีตรวจสอบวงเล็บที่สมดุลโดยใช้ Stack เราไม่ได้ตรวจสอบแค่วงเล็บเปิดและปิด แต่ยังตรวจสอบลำดับของวงเล็บด้วย ตัวอย่างเช่น นิพจน์ [{} () {()}] ถูกต้อง แต่ {[}] ไม่ถูกต้อง Input: นิพจน์มีวงเล็บ {()}[] Output: วงเล็บสมดุล อัลกอริทึม ขั้นตอน 1: กำหนด stack เพื่อเก็บวงเล็บ ขั้นตอน 2: วนล

  4. โปรแกรม C++ แปลงเลขฐานสิบเป็นเลขฐานสองด้วย Stack

    ในปัญหานี้ เราจะดูวิธีแปลงเลขฐานสิบเป็นเลขฐานสองโดยใช้ Stack เรารู้ว่าเลขฐานสิบสามารถแปลงเป็นฐานสองได้โดยการหารด้วย 2 และเก็บเศษ เราเอาเศษจากหลังสุดมาหน้าสุด ดังนั้นจึงใช้โครงสร้างข้อมูล Stack ได้อย่างง่ายดาย Input: เลขฐานสิบ 13 Output: เลขฐานสอง 1101 อัลกอริทึม ขั้นตอน 1: รับเลขฐานสิบ ขั้นตอน 2:

  5. โปรแกรม C++ ประเมินนิพจน์ด้วย Stack

    เพื่อแก้สมการทางคณิตศาสตร์ เราต้องการรูปแบบ prefix หรือ postfix หลังจากแปลง infix เป็น postfix แล้ว เราต้องใช้อัลกอริทึมประเมิน postfix เพื่อหาคำตอบที่ถูกต้อง ที่นี่เราก็ต้องใช้โครงสร้างข้อมูล stack เพื่อแก้สมการ postfix จากนิพจน์ postfix เมื่อพบตัวถูกดำเนินการ (operand) ให้ push เข้า stack เมื่อพ

  6. โปรแกรม C++ ใช้งาน Stack (พิลา)

    ในโปรแกรมนี้เราจะดูวิธีการใช้งาน Stack ด้วย C++ Stack เป็นโครงสร้างข้อมูลนามธรรมที่มีชุดขององค์ประกอบ Stack ใช้กลไก LIFO (Last In First Out) คือองค์ประกอบที่ push เข้าไปทีหลังจะถูก pop ออกมาก่อน การดำเนินการหลักของ Stack มีดังนี้ Push - เพิ่มค่าข้อมูลไปที่ด้านบนของ stack Pop - นำค่าข้อมูลที่อยู่ด

  7. โปรแกรม C++ สร้าง Adjacency List แสดงกราฟ

    การแสดงกราฟด้วย Adjacency List เป็นการแสดงผลแบบ linked list ในการแสดงผลนี้เรามีอาร์เรย์ของลิสต์ ขนาดอาร์เรย์คือ V โดย V คือจำนวนจุดยอด กล่าวอีกนัยหนึ่ง เรามีอาร์เรย์เก็บ V ลิสต์ที่แตกต่างกัน หากหัวลิสต์คือจุดยอด u หมายความว่าจะเก็บจุดยอดติดจัตุรัสทั้งหมดของ u ความซับซ้อนของการแสดงผลด้วย Adjacency

  8. โปรแกรม C++ สร้าง Adjacency Matrix แสดงกราฟ

    Adjacency Matrix ของกราฟเป็นเมทริกซ์สี่เหลี่ยมขนาด V x V โดย V คือจำนวนจุดยอดของกราฟ G ในเมทริกซ์นี้ ทั้งสองด้านจะมีจุดยอด V จุด ถ้ากราฟมีเส้นเชื่อมจากจุดยอด i ไปยัง j ใน Adjacency Matrix ที่แถว i และคอลัมน์ j จะเป็น 1 (หรือค่าที่ไม่ใช่ศูนย์สำหรับกราฟถ่วงน้ำหนัก) มิฉะนั้นจะเป็น 0 ความซับซ้อนของการ

  9. โปรแกรม C++ ใช้ Graham Scan หา Convex Hull

    Convex Hull คือพื้นที่ปิดที่เล็กที่สุดที่สามารถครอบคลุมจุดข้อมูลทั้งหมดได้ อัลกอริทึม Grahams Scan จะหาจุดมุมของ Convex Hull โดยเริ่มจากเลือกจุดที่ต่ำที่สุด จุดนั้นคือจุดเริ่มต้นของ Convex Hull จุดยอดที่เหลือ n-1 จุดจะถูกจัดเรียงตามทิศทางทวนเข็มนาฬิกาจากจุดเริ่มต้น หากมีจุด 2 จุดขึ้นไปที่สร้างมุมเท

  10. โปรแกรม C++ ใช้ Jarvis March หา Convex Hull

    อัลกอริทึม Jarvis March ใช้สำหรับหาจุดมุมของ Convex Hull จากชุดข้อมูลจุด เริ่มจากจุดที่อยู่ซ้ายสุดของชุดข้อมูล เราจะเก็บจุดใน Convex Hull โดยหมุนทวนเข็มนาฬิกา จากจุดปัจจุบัน สามารถเลือกจุดถัดไปได้โดยตรวจสอบการวางแนวของจุดเหล่านั้นจากจุดปัจจุบัน เมื่อมุมมากที่สุด จุดนั้นจะถูกเลือก หลังจากครบทุกจุด เ

  11. โปรแกรม C++ หาลำดับย่อยเพิ่มที่ยาวที่สุด (Longest Increasing Subsequence)

    Longest Increasing Subsequence (LIS) คือลำดับย่อยที่แต่ละองค์ประกอบมีค่ามากกว่าองค์ประกอบก่อนหน้า ในที่นี้เราจะหาความยาวของ LIS จากชุดของจำนวนเต็ม Input: ชุดจำนวนเต็ม {0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 11, 7, 15} Output: ความยาว LIS คือ 6 ลำดับย่อยคือ 0, 2, 6, 9, 13, 15 อัลกอริทึม longes

  12. วิธีส่งอ็อบเจ็กต์ไปยังฟังก์ชันในโปรแกรม C++

    ใน C++ มี 4 วิธีหลักในการส่งอ็อบเจ็กต์ไปยังฟังก์ชัน สมมติว่าคุณมีคลาส X และต้องการส่งไปยังฟังก์ชัน fun ดังนี้ การส่งแบบ Pass by Value วิธีนี้จะสร้าง shallow copy ของอ็อบเจ็กต์ในขอบเขตของฟังก์ชัน การเปลี่ยนแปลงค่าในฟังก์ชันจะไม่ส่งผลต่ออ็อบเจ็กต์ต้นฉบับ ตัวอย่างเช่น การประกาศ void fun(X x); การเร

  13. ความหมายของ int argc, char *argv[] ใน C++

    argc ย่อมาจาก argument count (จำนวนอาร์กิวเมนต์) argv ย่อมาจาก argument values (ค่าอาร์กิวเมนต์ - อาร์เรย์ของสตริง) เป็นตัวแปรที่ส่งให้ฟังก์ชัน main เมื่อเริ่มทำงาน เมื่อรันโปรแกรมสามารถส่งอาร์กิวเมนต์ได้ เช่น: $ ./a.out hello hello คืออาร์กิวเมนต์ สามารถเข้าถึงในโปรแกรมได้ โค้ดตัวอย่าง #include &

  14. Regular cast vs static_cast vs dynamic_cast ใน C++

    ประเภทของ Cast ใน C++ static_cast ใช้สำหรับการแปลงชนิดข้อมูลปกติ (ordinary type conversion) ยังรวม implicit type coercion และเรียกได้โดยตรง ใช้ในกรณีเช่น: แปลง float → int, char → int แปลง pointer ระหว่างคลาสที่เกี่ยวข้อง (base ↔ derived) เมื่อแน่ใจว่าปลอดภัย (ไม่มี runtime check) แปลง enum → int,

  15. ความแตกต่างระหว่าง struct และ typedef struct ใน C++

    พื้นฐานแล้ว struct ใช้เพื่อกำหนดโครงสร้าง (structure) ใน C หากต้องการใช้ ต้องเขียนคีย์เวิร์ด struct นำหน้าชื่อโครงสร้างทุกครั้ง หากใช้ typedef จะตั้งชื่อใหม่ได้ ใช้ชื่อนั้นโดยไม่ต้องเขียน struct // C style struct Point { int x, y; }; struct Point p1; // ต้องเขียน struct typedef struct Point

  16. ความแตกต่างระหว่าง private, public, และ protected inheritance ใน C++

    Data hiding (การซ่อนข้อมูล) เป็นคุณสมบัติสำคัญของ OOP ป้องกันไม่ให้ฟังก์ชันเข้าถึง internal representation ของคลาสโดยตรง การจำกัดการเข้าถึงสมาชิกคลาส ระบุด้วย access modifiers: public, private, protected ภายในร่างกายคลาส ค่าเริ่มต้น (default) สำหรับสมาชิกและคลาสคือ private ตัวอย่างโครงสร้างคลาส cl

  17. i++ และ ++i ใน C++ แตกต่างกันอย่างไร ด้านประสิทธิภาพไหม

    มีความแตกต่างที่สำคัญระหว่างรูปแบบ postfix (i++) และ prefix (++i) ของออเปอเรเตอร์ ++ Prefix (++i): เพิ่มค่า i ก่อน แล้วคืนค่าใหม่ของ i เป็นผลลัพธ์ของ expression Postfix (i++): คืนค่าเดิมของ i ก่อน แล้วค่อยเพิ่มค่า i โค้ดตัวอย่าง #include <iostream> using namespace std; int main() { in

  18. โปรแกรม C++ สำหรับ Graph Coloring บน Bipartite Graph

    Bipartite Graph (กราฟสองส่วน) คือกราฟที่สามารถทำ graph coloring ได้ด้วย 2 สี กล่าวคือ โหนดในเซตเดียวกันจะมีสีเดียวกัน และไม่มีขอบเชื่อมโหนดในเซตเดียวกัน โปรแกรมนี้รับ Bipartite graph เป็นอินพุต และส่งออกสีของแต่ละโหนดหลังทำ coloring อัลกอริธึม (BFS-based 2-Coloring) ใช้ BFS (Breadth-First Search)

  19. โปรแกรม C++ สำหรับการทำ Edge Coloring บน Line Graph

    Line Graph L(G) ของกราฟแบบไม่มีทิศทาง G เป็นกราฟอีกตัวหนึ่งที่แทนความติดกันระหว่างขอบ (edges) ของ G ในโปรแกรมนี้ เราทำ Edge Coloring บน Line Graph ของกราฟอินพุต อัลกอริธึม รับจำนวนโหนด n และจำนวนขอบ e รับคู่โหนด e คู่ สำหรับขอบในกราฟ (เก็บใน ed[][]) GenLineGraph(): สร้าง Line Graph ใน LineEd[][]

  20. โปรแกรม C++ ตรวจสอบว่า Graph เป็น DAG หรือไม่

    Directed Acyclic Graph (DAG) คือกราฟที่มีทิศทาง (directed) และไม่มีวัฏจักร (cycle) ที่เชื่อมต่อขอบอื่นๆ ขอบของกราฟนี้ไปในทิศทางเดียว นี่คือโปรแกรม C++ ตรวจสอบว่ากราฟเป็น DAG หรือไม่ อัลกอริธึม (Kahns Algorithm / Topological Sort based) โค้ดต้นฉบับใช้อัลกอริธึมที่ซับซ้อนและมีบั๊ก (เข้าถึง d เมื่อ pt

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:33/301  20-คอมพิวเตอร์/Page Goto:1 27 28 29 30 31 32 33 34 35 36 37 38 39