码迷,mamicode.com
首页 > 其他好文 > 详细

矩阵链乘

时间:2017-02-20 22:49:18      阅读:178      评论:0      收藏:0      [点我收藏+]

标签:矩阵   main   地址   ror   div   blog   cstring   uva   c代码   

                        矩阵链乘之结构体构造函数

struct构造函数,和构造函数的重载函数长这个样子,和C++的构造函数差不过。

struct Dog {
    Dog()
    {
        name = "wangwang";
        age = 10;
    }
    string name;
    int age;
};
struct Dog {
    Dog()
    {
        name = "Ao di";
        age = 2;
    }
    Dog(string n)
    {
        name = n;
        age = 10;
    }
    Car(string n, int c)
    {
        name = n;
        age = c;
    }
    string name;
    int age;
};

 

 

下面这个厉害了:

struct Dog {
    Dog(string n = "Lihao", int c = 10) : name(n), age(c) {} //name = n, age = c
    string name;
    int age;
};

这种构造函数非常好用。如果你只是想初始化一些变量。

 

 

结合uva442的AC代码,看看这种用法。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<stack>
#include<string>
using namespace std;
#define maxn 30

struct matrix{
    int a, b;
    matrix(int a=0, int b=0) :a(a), b(b){} //神奇的构造函数。
}mat[maxn];


int main()
{
    int m;
    cin >> m;
    for (int i = 0; i < m; i++){
        char name;
        cin >> name;
        cin >> mat[name - A].a >> mat[name - A].b;
    }
    
    char exp[200];
    stack<matrix> s;
    while (cin >> exp){
        int len = strlen(exp);
        bool error = false;
        int ans = 0;
        for (int i = 0; i < len; i++){
            if (exp[i] >= A&&exp[i] < Z)
                s.push(mat[exp[i] - A]);
            else if (exp[i] == )){
                matrix m1 = s.top(); s.pop();
                matrix m2 = s.top(); s.pop();
                if (m2.b != m1.a) { error = true; break; }
                ans += m2.a*m1.a*m1.b;
               s.push(matrix(m2.a, m1.b));//初始化之后,系统会生成一个指向该结构体的地址。
            }
        }
        if (error) cout << "error" << endl;
        else cout << ans << endl;
    }
    return 0;
}

 

矩阵链乘

标签:矩阵   main   地址   ror   div   blog   cstring   uva   c代码   

原文地址:http://www.cnblogs.com/leonardju/p/6421655.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!