Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อโอเวอร์โหลดตัวดำเนินการบวกเพื่อเพิ่มเมทริกซ์สองตัว


สมมติว่าเรามีเมทริกซ์สองตัวคือ mat1 และ mat2 เราจะต้องบวกเมทริกซ์สองตัวนี้และสร้างเมทริกซ์ที่สาม เราจะต้องทำสิ่งนี้โดยการโอเวอร์โหลดโอเปอเรเตอร์เพิ่มเติม

ดังนั้นหากอินพุตเป็นแบบ

5 8
9 6
7 9


8 3
4 7
6 3

แล้วผลลัพธ์ที่ได้จะเป็น

13 11
13 13
13 12

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

  • โอเวอร์โหลดโอเปอเรเตอร์การบวก ซึ่งจะใช้เมทริกซ์แมทอื่นเป็นอาร์กิวเมนต์ที่สอง

  • กำหนดอาร์เรย์ 2d ว่างหนึ่ง vv

  • กำหนดอาร์เรย์ 2 มิติ vv และโหลดองค์ประกอบเมทริกซ์ปัจจุบันเข้าไป

  • สำหรับการเริ่มต้น i :=0 เมื่อ i <ขนาด vv ให้อัปเดต (เพิ่ม i ขึ้น 1) ให้ทำ:

    • สำหรับการเริ่มต้น j :=0 เมื่อ j

      • vv[i, j] :=vv[i, j] + mat.a[i, j]
  • คืนค่าเมทริกซ์ใหม่โดยใช้ vv

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

#include #include ใช้เนมสเปซ std;คลาสเมทริกซ์ { สาธารณะ:เมทริกซ์ () {} เมทริกซ์ (const Matrix&x) :a(x.a) {} เมทริกซ์ (const vector> &v) :a(v) {} เมทริกซ์โอเปอเรเตอร์+(const Matrix&); เวกเตอร์<เวกเตอร์> a; โมฆะ display(){ for(int i =0; i> vv =a; สำหรับ (int i=0; i> mat1 ={{5,8},{9,6},{7,9}}; เวกเตอร์<เวกเตอร์> mat2 ={{8,3},{4,7},{6,3}}; int r =mat1.size(); int c =mat1[0].size(); เมทริกซ์ m1(mat1), m2(mat2), res; ความละเอียด =m1 + m2; res.display();}

อินพุต

<ก่อน>{{5,8},{9,6},{7,9}}, {{8,3},{4,7},{6,3}}

ผลลัพธ์

13 1113 1313 12