C++语言 结构体/类 运算、比较大小
发布网友
发布时间:2023-05-20 19:35
我来回答
共2个回答
热心网友
时间:2024-03-21 00:26
重载运算符啊~~
PS:结构体=类,只是默认数据保密类型和继承类型不一样而已...
给个例子:
#define size_max UINT_MAX//字符串长度的最大值
typedef unsigned STR_SIZE_TYPE;//字符串长度变量声明
typedef char STR_CHAR;//字符串字符类型
const unsigned NAGASA=16;//重载>>中内存开辟递增数量级
struct string
{
private:
STR_CHAR *str;
STR_SIZE_TYPE len;
protected:
public:
string();
string(const STR_CHAR &);
string(const STR_CHAR *);
string(const string &,STR_SIZE_TYPE n=0,STR_SIZE_TYPE m=size_max);
string(const STR_SIZE_TYPE &,const STR_CHAR &);
string(const STR_CHAR *,const STR_SIZE_TYPE &);
virtual ~string();
string & operator =(const string &);
string & operator =(const STR_CHAR *);
string & operator =(const STR_CHAR &);
string & operator +=(const string &);
string & operator +=(const STR_CHAR *);
string & operator +=(const STR_CHAR &);
STR_CHAR & operator [](const STR_SIZE_TYPE & i);
const STR_CHAR & operator [](const STR_SIZE_TYPE & i)const;
STR_SIZE_TYPE size()const
{return len;};
STR_SIZE_TYPE has(const STR_CHAR &)const;//返回string对象中指定参数字符的数量
void up();//将string对象中的小写字母转换为大写字母
void low();//将string对象中的大写字母转换为小写字母
void swap(string &);
bool empty()const;
void resize(const STR_SIZE_TYPE,const STR_CHAR ch=' ');
void clear();
friend std::ostream & operator <<(std::ostream &,const string &);
friend std::istream & operator >>(std::istream &,string &);
friend bool operator <(const string &,const string &);
friend bool operator >(const string &,const string &);
friend bool operator ==(const string &,const string &);
friend bool operator !=(const string &,const string &);
friend bool operator <=(const string &,const string &);
friend bool operator >=(const string &,const string &);
friend string operator +(const string &,const string &);
friend void swap(string &,string &);
typedef STR_SIZE_TYPE size_type;
};
bool operator <(const string & st1,const string & st2)
{
if(strcmp(st1.str,st2.str)<0)
{
return true;
}
else
{
return false;
}
}
bool operator >(const string & st1,const string & st2)
{
if(strcmp(st1.str,st2.str)>0)
{
return true;
}
else
{
return false;
}
}
bool operator ==(const string & st1,const string & st2)
{
if(0==strcmp(st1.str,st2.str))
{
return true;
}
else
{
return false;
}
}
bool operator !=(const string & st1,const string & st2)
{
if(0==strcmp(st1.str,st2.str))
{
return false;
}
else
{
return true;
}
}
bool operator <=(const string & st1,const string & st2)
{
if(strcmp(st1.str,st2.str)>0)
{
return false;
}
else
{
return true;
}
}
bool operator >=(const string & st1,const string & st2)
{
if(strcmp(st1.str,st2.str)<0)
{
return false;
}
else
{
return true;
}
}
热心网友
时间:2024-03-21 00:26
最好用类.以后你会知道好处的