Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- typedef std::vector<int> Vector;
- typedef std::vector<Vector> Matrix;
- // Сложение векторов
- Vector operator + (const Vector & a, const Vector & b) {
- Vector c;
- for (int i = 0, s1 = (int)a.size(), s2 = (int)b.size(); i < s1 || i < s2; ++i)
- c.push_back((i < s1 ? a[i]:0) + (i < s2 ? b[i]:0));
- return c;
- }
- // Умножение матриц
- Matrix operator * (const Matrix & a, const Matrix & b) {
- Matrix c;
- for (int i = 0; i < (int)a.size(); ++i) {
- c.push_back(Vector());
- for (int j = 0; j < (int)b[0].size(); ++j) {
- c.back().push_back(0);
- for (int k = 0; k < (int)b.size(); ++k)
- c.back().back() += a[i][j] * b[j][k];
- }
- }
- return c;
- }
- int main() {
- setlocale(LC_ALL, "Russian");
- { // Сложение векторов
- auto c = Vector({1, 2, 3, 4}) + Vector({4, 5, 6});
- std::cout << "Сложение векторов:\n\t";
- for (auto & it : c)
- std::cout << it << "\t";
- std::cout << std::endl;
- }
- { // Умножение матриц
- auto c = Matrix({
- {1, 2, 3},
- {4, 5, 6},
- {7, 8, 9}
- }) * Matrix({
- {9, 8, 7},
- {6, 5, 4},
- {3, 2, 1}
- });
- std::cout << "Умножение матриц:\n";
- for (auto & row : c) {
- for (auto & it : row)
- std::cout << "\t" << it;
- std::cout << std::endl;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement