2014-10-27 50 views
-2

所以我要..如何初始化结构和deque

struct Polynomial{ 
    deque<long> coefs; 
    long degree; 

    Polynomial(initializer_list<long> co_list); 
    Polynomial(deque<long> & co_list); 
    Polynomial(); 
    string poly_to_string(); 
    Polynomial add(Polynomial rhs); 
    Polynomial mult(Polynomial rhs); 
    Polynomial mult(long factor); 
} 

对于theese方法,我必须:

多项式(initializer_list CFS)。使用初始化器系数列表初始化实例。 -顺序是最高的力量先走,最后的最后一个 -coefs和程度更新。

多项式(deque cfs)。使用系数向量初始化实例。顺序是最高的力量先行,最低的最后 -coefs和程度更新。

然后我做的方法来添加/多/系数多项式,我所能做的,只是不知道什么

Polynomial(initializer_list<long> co_list); 
Polynomial(deque<long> & co_list); 

是假设做/如何开始他们..

而且,我将如何开始函数返回 Polynomial.degree 要返回一个长整型值?

+0

这些问题通过上课或阅读书籍得到更好的回答。 stackoverflow.com不是在这里教授语言基础知识。 – 2014-10-27 20:19:51

+0

每个(initializer_list,deque)都有你可能用来初始化系数的开始,结束和大小。 – 2014-10-27 20:22:47

回答

0

这两个函数是该类型的构造函数。他们告诉编译器如何设置一个Polynomial对象,以便它可以被调用。他们最容易理解的是这样的:

struct Polynomial{ 
    deque<long> coefs; 
    long degree; 

    Polynomial(initializer_list<long> co_list); 
    Polynomial(deque<long> & co_list); 
}; 
Polynomial::Polynomial(initializer_list<long> co_list) 
{ 
    //at this point, the members are created, but have no values 
    //so we assign values to the members 
    coefs.assign(co_list.begin(), co_list.end()); 
    degree = co_list.size(); 
} 
int main() 
{ 
    Polynomial mypoly = {3, 4, 5}; 
    //creates a Polynomial variable from an initializer list 
    //the compiler runs the constructor function automatically 
    //so now it's members are all properly set, and we can run other functions 
    mypoly.do_thing(); 
} 

然而,如上图所示,在Polynomial构造函数构造的两名成员,并随后执行赋予它们价值的功能。我们可以通过直接用预期值构建它们来使它更好:

Polynomial::Polynomial(initializer_list<long> co_list) 
    : 
    coefs(co_list.begin(), co_list.end()), //constructed directly 
    degree(co_list.size()) 
{ 
    //they already have the needed values, don't need to do anything more 
    //to finalize the construction 
} 
+0

非常感谢,我非常感谢每个部分的解释,以便我将来能够自己复制! – Ipawnu43 2014-10-27 20:29:00

+1

@ lpawnu43,如果答案对你来说很好,请将其加满或标出。你的投票对于鼓励人们在将来再次帮助你很重要。 – 2014-10-27 20:34:58

+0

完成,谢谢你的提示! – Ipawnu43 2014-10-27 20:44:59