Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. โปรแกรม C++ สร้าง Random Directed Acyclic Graph (DAG) สำหรับจำนวนขอบที่กำหนด

    ในโปรแกรมนี้เราสร้าง random directed acyclic graph สำหรับขอบ e ที่กำหนด Time complexity คือ O(e*v*e) อัลกอริทึม เริ่มต้น ฟังก์ชัน GenerateRandomGraphs() มี e เป็นจำนวนขอบใน argument list สร้างการเชื่อมต่อระหว่างตัวเลขสุ่ม 2 ตัว สำหรับกรณีตัวอย่าง จำกัดจำนวน vertex ไว้ที่ 20 ตรวจสอบ cycle ในก

  2. โปรแกรม C++ สร้างกราฟสำหรับ Degree Sequence ที่กำหนด

    นี่คือโปรแกรม C++ แสดงกราฟไม่มีทิศทาง (undirected graph) สำหรับ degree sequence ที่กำหนด Time complexity คือ O(v*v) และไม่รวม self-edge และ multiple edges อัลกอริทึม เริ่มต้น เพื่อสร้างกราฟ สร้างลูปแรกเพื่อเชื่อมต่อแต่ละ vertex i สร้างลูปซ้อนที่สองเพื่อเชื่อมต่อ vertex i ไปยัง vertex j ที่ถู

  3. โปรแกรม C++ แสดงกราฟด้วย Incidence List

    โปรแกรมนี้แสดงกราฟโดยใช้ incidence list และ time complexity ของอัลกอริทึมนี้คือ O(e) อัลกอริทึม เริ่มต้น รับจำนวน vertex v และ edges e และรับ e คู่ของ vertex ของกราฟที่กำหนดใน e[][] สำหรับแต่ละขอบ พิมพ์ vertex ที่เกี่ยวข้องในการเชื่อมต่อนั้น สิ้นสุด โค้ดตัวอย่าง #include <iostream> usin

  4. โปรแกรม C++ แสดงกราฟด้วย 2D Arrays

    นี่คือโปรแกรม C++ แสดงกราฟโดยใช้ 2D arrays Time complexity ของอัลกอริทึมนี้คือ O(v*v) อัลกอริทึม เริ่มต้น รับจำนวน vertex v และ edges e จัดสรรหน่วยความจำให้ graph[][] matrix รับ e คู่ของ vertex ของกราฟที่กำหนดใน graph[][] สำหรับแต่ละคู่ของ vertex ที่เชื่อมต่อ (v1, v2) เก็บ 1 ใน graph[][] ท

  5. โปรแกรม C++ หา Transpose ของเมทริกซ์กราฟ

    ในโปรแกรมนี้เรารับเมทริกซ์และพิมพ์ transpose ของเมทริกซ์ ในเมทริกซ์ transpose แถวจะกลายเป็นคอลัมน์และในทางกลับกัน อัลกอริทึม เริ่มต้น รับจำนวนแถวและคอลัมน์ของเมทริกซ์ รับองค์ประกอบของเมทริกซ์และเก็บในเมทริกซ์ A เมทริกซ์ transpose หาได้โดยการแลกเปลี่ยนแถวกับคอลัมน์และคอลัมน์กับแถว พิมพ์เมทร

  6. วิธีใช้ Conditional Operator (Ternary Operator) ใน C/C++

    ออเปอเรเตอร์เงื่อนไขนี้รู้จักอีกชื่อว่า Ternary Operator ออเปอเรเตอร์นี้มี 3 ส่วน Exp1 ? Exp2 : Exp3; โดยที่ Exp1, Exp2, และ Exp3 เป็นนิพจน์ สังเกตการใช้และตำแหน่งของ colon ค่าของนิพจน์ ? ถูกกำหนดดังนี้: ประเมิน Exp1 ถ้าเป็นจริง (true) Exp2 จะถูกประเมินและกลายเป็นค่าของนิพจน์ ? ทั้งหมด ถ้า Exp1 เป็

  7. พฤติกรรม Pre-increment และ Post-increment ใน C, C++, Java, และ C#

    Pre-increment และ Post-increment ทั้งคู่เป็นออเปอเรเตอร์การเพิ่มค่า (increment operations) Pre-increment operator ใช้เพื่อเพิ่มค่าของตัวแปรบางตัวก่อนใช้มันในนิพจน์ ใน pre-increment ค่าจะถูกเพิ่มขึ้นก่อน แล้วจึงใช้ภายในนิพจน์ ถ้านิพจน์คือ a = ++b; และ b เก็บค่า 5 เริ่มต้น แล้ว a จะเก็บค่า 6 เพราะเพ

  8. ความแตกต่างระหว่าง Assignment Operator และ Copy Constructor ใน C++

    Copy constructor และ Assignment operators ใช้เพื่อเริ่มต้นออบเจกต์หนึ่งให้เป็นอีกออบเจกต์หนึ่ง ความแตกต่างหลักคือ Copy constructor สร้างบล็อกหน่วยความจำแยกสำหรับออบเจกต์ใหม่ แต่ Assignment operator ไม่สร้างพื้นที่หน่วยความจำใหม่ ใช้ตัวแปรอ้างอิงชี้ไปยังบล็อกหน่วยความจำเดิม Copy Constructor (Syntax

  9. Arrow Operator (->) ใน C++ คืออะไร

    Dot operator และ Arrow operator ใช้ทั้งคู่ใน C++ เพื่อเข้าถึงสมาชิกของคลาสหรือโครงสร้าง (struct) พวกมันใช้ในสถานการณ์ที่ต่างกัน ใน C++ ชนิดที่ประกาศเป็น class, struct, หรือ union ถือว่าเป็น of class type ดังนั้นต่อไปนี้หมายถึงทั้งสาม a.b ใช้ได้ก็ต่อเมื่อ b เป็นสมาชิกของออบเจกต์ (หรืออ้างอิงถึงออบเ

  10. ความแตกต่างระหว่าง new operator และ operator new ใน C++

    ใน C++ เมื่อเราต้องการสร้างออบเจกต์ใหม่ เราต้องสร้างบล็อกหน่วยความจำในหน่วยความจำ แล้วเรียก constructor เพื่อเริ่มต้นบล็อกหน่วยความจำ เราสามารถสร้างองค์ประกอบหน่วยความจำได้โดยใช้คีย์เวิร์ด new new operator นี้ทำ 2 งานติดต่อกัน แต่ operator new เพียงแค่สร้างพื้นที่หน่วยความจำ New Keyword (new opera

  11. ออเปอเรเตอร์ Type Casting ใน C++

    Cast เป็นออเปอเรเตอร์พิเศษที่บังคับให้ชนิดข้อมูลหนึ่งแปลงเป็นอีกชนิดหนึ่ง เป็นออเปอเรเตอร์แบบ unary และมี precedence เท่ากับออเปอเรเตอร์ unary อื่นๆ รูปแบบ cast ทั่วไปที่สุดที่คอมไพเลอร์ C++ รองรับส่วนใหญ่คือ (type) expression โดยที่ type คือชนิดข้อมูลที่ต้องการ มีออเปอเรเตอร์ casting อื่นๆ ที่ C+

  12. Copy Constructor vs Assignment Operator ใน C++

    Copy constructor และ Assignment operators ใช้สำหรับเริ่มต้น (initialize) ออบเจกต์หนึ่งให้เป็นอีกออบเจกต์หนึ่ง ความแตกต่างหลักคือ Copy constructor สร้างบล็อกหน่วยความจำแยกสำหรับออบเจกต์ใหม่ แต่ Assignment operator ไม่สร้างพื้นที่หน่วยความจำใหม่ ใช้ตัวแปรอ้างอิง (reference variable) ชี้ไปยังบล็อกหน่ว

  13. ออเปอเรเตอร์ที่ไม่สามารถโอเวอร์โหลดได้ใน C++

    ใน C++ เราสามารถโอเวอร์โหลดออเปอเรเตอร์บางตัวเช่น +, -, [], -> ได้ แต่ไม่สามารถโอเวอร์โหลดออเปอเรเตอร์บางตัวได้ ออเปอเรเตอร์ที่ไม่สามารถโอเวอร์โหลดได้มีดังนี้ . Member access หรือ dot operator ? : Ternary หรือ conditional operator :: Scope resolution operator .* Pointer to member operator sizeo

  14. การโอเวอร์โหลดออเปอเรเตอร์สตรีม insertion (<<) และ extraction (>>) ใน C++

    C++ สามารถรับอินพุตและแสดงเอาต์พุทชนิดข้อมูลสร้าง込 (built-in data types) โดยใช้ออเปอเรเตอร์สตรีม extraction operator >> และ stream insertion operator << ออเปอเรเตอร์สตรีม insertion และ extraction ยังสามารถโอเวอร์โหลดได้เพื่อดำเนินการรับอินพุตและแสดงเอาต์พุทสำหรับชนิดข้อมูลที่ผู้ใช้กำหนด

  15. Unordered_multimap operator= ใน C++

    ฟังก์ชัน C++ std::unordered_multimap::operator=() กำหนดเนื้อหาใหม่ให้กับ unordered_multimap โดยแทนที่เนื้อหาเก่าและปรับขนาด (size) หากจำเป็น นี่คือการประกาศสำหรับฟังก์ชัน std::unordered_multimap::operator=() จาก header std::unordered_map C++11 (Syntax) unordered_multimap& operator=(const unor

  16. ออเปอเรเตอร์จุลภาค (Comma Operator) ใน C/C++

    วัตถุประสงค์ของออเปอเรเตอร์จุลภาคคือการเชื่อมต่อหลายนิพจน์ (expressions) เข้าด้วยกัน ค่าของรายการนิพจน์ที่คั่นด้วยจุลภาคคือค่าของนิพจน์ขวามือสุด (right-most expression) โดยอาจารย์ จุลภาคมีผลทำให้ลำดับการดำเนินการเกิดขึ้น ค่าของนิพจน์อื่นๆ จะถูกทิ้ง (discarded) หมายความว่านิพจน์ด้านขวาจะกลายเป็นค่า

  17. กฎการโอเวอร์โหลดออเปอเรเตอร์ (Operator Overloading) ใน C++

    ใน C++ รองรับคอมไพล์ไทม์โพลีมอร์ฟิซึม (compile time polymorphism) ตัวอย่างของคอมไพล์ไทม์โพลีมอร์ฟิซึมคือ การโอเวอร์โหลดฟังก์ชัน (function overloading) และการโอเวอร์โหลดออเปอเรเตอร์ (operator overloading) มีกฎบางอย่างสำหรับการโอเวอร์โหลดออเปอเรเตอร์ กฎเหล่านี้คือ สามารถโอเวอร์โหลดได้เฉพาะออเปอเรเต

  18. โปรแกรม C++ พิมพ์ "Even" หรือ "Odd" โดยไม่ใช้คำสั่งเงื่อนไข

    ในส่วนนี้เราจะดูวิธีตรวจสอบว่าตัวเลขเป็นคี่หรือคู่โดยไม่ใช้คำสั่งเงื่อนไขแบบใดๆ เช่น (<, <=, !=, >, >=, ==) เราสามารถตรวจสอบคี่หรือคู่ได้ง่ายด้วยคำสั่งเงื่อนไข หารตัวเลขด้วย 2 แล้วตรวจสอบว่าเศษเป็น 0 หรือไม่ ถ้าเป็น 0 คือคู่ มิฉะนั้นสามารถทำ AND แบบบิต (bitwise AND) กับตัวเลขและ 1 ได้

  19. โปรแกรม C++ เติมหน่วยความจำเต็มทั้งหมด (Memory Exhaustion)

    ในบทความนี้เราจะดูวิธีเติมหน่วยความจำทั้งหมดโดยเขียนโปรแกรม C++ 単純 ตรรกะค่อนข้างง่าย เราจะสร้างตัวแปรจำนวนเต็มใหม่ๆ โดยใช้การจัดสรรหน่วยความจำแบบไดนามิก (dynamic memory allocation) หากเราสร้างตัวแปรบางตัวซ้ำๆ จะเติมหน่วยความจำหลัก (primary memory) ทั้งหมด ใน C++ เพื่อจัดสรรพื้นที่หน่วยความจำแบบไดน

  20. โปรแกรม C++ สร้างตัวเลขสุ่ม (Random Number Generation)

    ลองดูวิธีสร้างตัวเลขสุ่มด้วย C++ ที่นี่เรากำลังสร้างตัวเลขสุ่มในช่วง 0 ถึงค่าบางค่า (ในโปรแกรมนี้ค่าสูงสุดคือ 100) เพื่อดำเนินการนี้เราใช้ฟังก์ชัน srand() ซึ่งอยู่ในไลบรารี C ฟังก์ชัน void srand(unsigned int seed) ใช้สำหรับ seeding ตัวสร้างตัวเลขสุ่มที่ใช้โดยฟังก์ชัน rand การประกาศ srand() เป็นดั

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:28/301  20-คอมพิวเตอร์/Page Goto:1 22 23 24 25 26 27 28 29 30 31 32 33 34