初用STL,看看这是怎么回事??
PolynomialElementType.h:(存放多项式中一项的系数和指数)
#ifndef POLYNOMIAL_ELEMENT_TYPE_CLASS
#define POLYNOMIAL_ELEMENT_TYPE_CLASS
class PolynomialElementType
{
public:
double coefficient;
int exponent;
public:
PolynomialElementType();
PolynomialElementType(double coeff,int exp);
PolynomialElementType(const PolynomialElementType& p);
~PolynomialElementType();
};
#endif
PolynomialElementType.cpp:
#include "PolynomialElementType.h"
PolynomialElementType::PolynomialElementType()
{
coefficient=0;
exponent=0;
}
PolynomialElementType::PolynomialElementType(double coeff,int exp)
{
coefficient=coeff;
exponent=exp;
}
PolynomialElementType::PolynomialElementType(const PolynomialElementType& p)
{
PolynomialElementType(p.coefficient,p.exponent);
}
PolynomialElementType::~PolynomialElementType()
{
}
多项式类Polynomial.h:
#ifndef POLYNOMIAL_H_
#define POLYNOMIAL_H_
#include <list>
#include <algorithm>
#include <iostream>
#include "../DataElement/PolynomialElementType.h"
class Polynomial
{
private:
std::list<PolynomialElementType> Link;
public:
Polynomial();
~Polynomial();
void insert_item(int coeff,int exp);
void print();
};
#endif /* POLYNOMIAL_H_ */
Polynomial.cpp:
#include <functional>
#include "Polynomial.h"
Polynomial::Polynomial()
{
}
Polynomial::~Polynomial()
{
}
void Polynomial::insert_item(int coeff,int exp)
{
Link.push_back(PolynomialElementType(coeff,exp));
}
void Polynomial::print()
{
std::list<PolynomialElementType>::iterator iter=Link.begin();
for(;iter!=Link.end();)
{
PolynomialElementType pet_temp=*iter;
std::cout<<pet_temp.coefficient<<"X^"<<pet_temp.exponent;
if(++iter!=Link.end())
std::cout<<"+";
}
std::cout<<std::endl;
}
测试是否能插入元素:
#include "Polynomial.h"
int main()
{
Polynomial pa;
Polynomial pb;
pa.insert_item(1,2);
pa.insert_item(2,1);
pb.insert_item(3,2);
pb.insert_item(3,3);
pa.print();
pb.print();
return 1;
}
结果是随机数:
4.85873e-270X^0+4.85873e-270X^0
4.85873e-270X^0+4.85873e-270X^0
这是怎么回事???